我想创建以下直方图(见下图),取自“ThinkStats”一书。但是,我不能让他们在同一个情节上。每个DataFrame都有自己的子图。我有以下代码:importnsfgimportmatplotlib.pyplotaspltdf=nsfg.ReadFemPreg()preg=nsfg.ReadFemPreg()live=preg[preg.outcome==1]first=live[live.birthord==1]others=live[live.birthord!=1]#fig=plt.figure()#ax1=fig.add_subplot(111)first.hist(col
我想获取直方图bin中包含的数据列表。我正在使用numpy和Matplotlib。我知道如何遍历数据并检查bin边缘。但是,我想为2D直方图执行此操作,并且执行此操作的代码相当难看。numpy有什么结构可以让这更容易吗?对于一维情况,我可以使用searchsorted()。但是逻辑并没有那么好,我真的不想在不需要的时候对每个数据点进行二分搜索。大多数讨厌的逻辑是由于bin边界区域造成的。所有区域都有这样的边界:[左边缘,右边缘)。除了最后一个bin,它有一个像这样的区域:[leftedge,rightedge]。这里是一维案例的一些示例代码:importnumpyasnpdata=[0
我想更改直方图的默认x范围。数据的范围是从7到12。但是,默认情况下,直方图从7开始,到13结束。我希望它从6.5开始,到12.5结束。但是,刻度应该从7变为12。我该怎么做?importasciitableimportnumpyasnpimportmatplotlib.pyplotaspltimportmatplotlib.mlabasmlabimportpylabfrompylabimportxticksdata=asciitable.read(file)hmag=data['col8']visits=data['col14']origin=data['col13']n,bins,
我有两个列表,x和y。x包含字母A-Z,Y包含它们在文件中的频率。我尝试研究如何在直方图中绘制这些值,但在理解如何绘制它方面没有成功。n,bins,patches=plt.hist(x,26,normed=1,facecolor='blue',alpha=0.75)x会是上述列表中的列表x吗? 最佳答案 hist作用于一组值并计算并从中绘制直方图。在您的情况下,您已经预先计算了每个组(字母)的频率。要以直方图形式表示您的数据,请使用更好的matplotlibbar:importnumpyasnpimportmatplotlib.py
我是matplotlib(1.3.1-2)的新手,我找不到合适的起点。我想用matplotlib在直方图中绘制点随时间的分布。基本上我想绘制一个日期出现的累积总和。date2011-12-132011-12-132013-11-012013-11-012013-06-042013-06-042014-01-01...这样就可以了2011-12-13->2times2013-11-01->3times2013-06-04->2times2014-01-01->once由于多年来会有很多点,我想在我的x-Axis上设置startdate和enddate,然后标记n-timesteps(即1
假设我使用scipy/numpy创建了一个直方图,所以我有两个数组:一个用于bin计数,一个用于bin边缘。如果我使用直方图来表示一个概率分布函数,我怎样才能有效地从该分布中生成随机数? 最佳答案 这可能是np.random.choice在@Ophion的答案中所做的,但是您可以构造一个归一化的累积密度函数,然后根据统一的随机数进行选择:from__future__importdivisionimportnumpyasnpimportmatplotlib.pyplotaspltdata=np.random.normal(size=1
我创建了一个dictionary来计算每个键在list中出现的次数,现在我想绘制其内容的直方图。这是我要绘制的字典的内容:{1:27,34:1,3:72,4:62,5:33,6:36,7:20,8:12,9:9,10:6,11:5,12:8,2:74,14:4,15:3,16:1,17:1,18:1,19:1,21:1,27:2}到目前为止,我写了这个:importnumpyasnpimportmatplotlib.pyplotaspltpos=np.arange(len(myDictionary.keys()))width=1.0#giveshistogramaspecttotheb
在我的Jupyter笔记本中,我现在使用%matplotlibnotebook而不是%matplotlibinline,现在我可以在Jupyter上与我的绘图进行交互,这真是太棒了。但是,当我尝试制作直方图时,我得到一个空白图:如果我使用%matplotlibinline一切正常:发生了什么事? 最佳答案 看到我上面的评论确实帮助某人解决了问题,我将其发布为答案。如果您从%matplotlibinline切换到%matplotlibnotebook而不重新启动内核,则会出现此问题。从%matplotlibnotebook切换到%ma
我正在绘制一个直方图,我有三个要一起绘制的数据集,每个数据集都有不同的颜色和线型(虚线、点线等)。我还提供了一些透明度,以便看到重叠的条形。关键是我希望每个条的边缘不要像内部那样变得透明。这是一个例子:importmatplotlib.pyplotaspltimportnumpyasnpx=np.random.random(20)y=np.random.random(20)z=np.random.random(20)fig=plt.figure()ax=fig.add_subplot(111)ax.hist(x,bins=np.arange(0,1,0.1),ls='dashed',a
在使用seaborn和Jupyter笔记本做一些练习题时,我意识到distplot()图在各个bin上没有文档中所有示例图所具有的较暗轮廓。我尝试使用Pycharm创建图表并注意到同样的事情。认为这是一个海洋问题,我尝试了一些使用matplotlib的hist()图表,但得到了相同的结果。importmatplotlib.pyplotaspltimportseabornassnstitanic=sns.load_dataset('titanic')plt.hist(titanic['fare'],bins=30)生成了以下图表:最后我偶然发现了plt.hist()函数上的'edgeco