Tag: matplotlib

在OS X上使用Python自制软件

我一直在使用Mac python,而且我决定自学matplotlib ,因为我想用一些常用模块的经验。 我听到大家的意见,一旦你进入非标准模块,最好使用python扔自制软件,所以你有权访问pip而不是easy_install 。 运行后: $brew install python –with-brewed-openssl , $brew install python3 –with-brewed-openssl , $pip install matplotlib ,我用$python3去python shell。 一旦那里,我运行import matplotlib.pyplot as plt ,并得到以下内容: Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 00:54:21) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import matplotlib.pyplot […]

当图表运行时,添加边距

通常当我在matplotlib中绘图,我得到这样的图表: 你看不到这个函数,因为它运行在图的边缘。 有什么办法可以在这些情况下自动添加一些保证金,所以他们看起来像这样:

在Matplotlib中的两个绘图之间绘制线条

我正在用Matplotlib绘制两个子图,基本如下: subplot(211); imshow(a); scatter(…, …) subplot(212); imshow(b); scatter(…, …) 我可以在这两个子图之间画线吗? 我该怎么做?

查找numpy数组中相同值序列的长度(运行长度编码)

在一个pylab程序(也可能是一个matlab程序),我有一个代表距离的数字numpy数组: d[t]是在时间t的距离 (和我的数据的时间是len(d)时间单位) 。 我感兴趣的事件是距离低于某个阈值时,我想计算这些事件的持续时间。 很容易得到b = d<threshold的布尔数组,并且问题归结为计算b只包含真值的字的长度序列。 但我不知道如何有效地做到这一点(即使用numpy原语),我走了arrays,并做手动变化检测(即初始化计数器时,从False值为真,增加计数器,只要值为真当值返回到False时,将计数器输出到序列)。 但是这是非常缓慢的。 如何有效地检测numpy数组中的那种序列? 下面是一些说明我的问题的Python代码:第四个点需要很长时间才能出现(如果不是,则增加数组的大小) from pylab import * threshold = 7 print '.' d = 10*rand(10000000) print '.' b = d<threshold print '.' durations=[] for i in xrange(len(b)): if b[i] and (i==0 or not b[i-1]): counter=1 if i>0 and b[i-1] and b[i]: counter+=1 if (b[i-1] and not […]

Matplotlib重叠注释/文本

我正试图在我的图表中停止注释文本重叠。 在接受的Matplotlib重叠注释的答案中提出的方法看起来非常有希望,但是对于条形图而言。 我无法将“轴”方法转换为我想要执行的操作,而且我不明白文本是如何排列的。 import sys import matplotlib.pyplot as plt # start new plot plt.clf() plt.xlabel("Proportional Euclidean Distance") plt.ylabel("Percentage Timewindows Attended") plt.title("Test plot") together = [(0, 1.0, 0.4), (25, 1.0127692669427917, 0.41), (50, 1.016404709797609, 0.41), (75, 1.1043426359673716, 0.42), (100, 1.1610446924342996, 0.44), (125, 1.1685687930691457, 0.43), (150, 1.3486407784550272, 0.45), (250, 1.4013999168008104, 0.45)] together.sort() for x,y,z in together: plt.annotate(str(x), xy=(y, […]

用Pandas条形图上的值来标注条形图

我正在寻找一种方法在我的DataFrame中使用值(舍入)在Pandas条形图中标注我的条形图。 >>> df=pd.DataFrame({'A':np.random.rand(2),'B':np.random.rand(2)},index=['value1','value2'] ) >>> df AB value1 0.440922 0.911800 value2 0.588242 0.797366 我想得到这样的东西: 我尝试了这个,但注释都集中在xthicks: >>> ax = df.plot(kind='bar') >>> for idx, label in enumerate(list(df.index)): for acc in df.columns: value = np.round(df.ix[idx][acc],decimals=2) ax.annotate(value, (idx, value), xytext=(0, 15), textcoords='offset points')

在matplotlib中为imshow定义离散色彩图

我有一个简单的图像,我用matplotlib中的imshow显示。 我想要应用一个自定义的颜色映射,以便0-5之间的值是白色的,5-10是红色(非常简单的颜色)等。我试过按照这个教程: http://assorted-experience.blogspot.com/2007/07/custom-colormaps.html以下代码: cdict = { 'red' : ((0., 0., 0.), (0.5, 0.25, 0.25), (1., 1., 1.)), 'green': ((0., 1., 1.), (0.7, 0.0, 0.5), (1., 1., 1.)), 'blue' : ((0., 1., 1.), (0.5, 0.0, 0.0), (1., 1., 1.)) } my_cmap = mpl.colors.LinearSegmentedColormap('my_colormap', cdict, 3) plt.imshow(num_stars, extent=(min(x), max(x), min(y), max(y)), cmap=my_cmap) plt.show() 但是,这最终显示出奇怪的颜色,我只需要3-4个颜色,我想定义。 我如何做到这一点?

如何使用matplotlib设置所有子图的默认颜色循环?

我如何设置matplotlib绘制的图的默认颜色集? 我可以像这样设置一个特定的颜色映射 import numpy as np import matplotlib.pyplot as plt fig=plt.figure(i) ax=plt.gca() colormap = plt.get_cmap('jet') ax.set_color_cycle([colormap(k) for k in np.linspace(0, 1, 10)]) 但有没有办法为所有地块设置相同的颜色,包括子图?

pandas棒图更改date格式

我有一个简单的堆积线图,具有完全使用下面的代码时,我想魔法设置的date格式。 df_ts = df.resample("W", how='max') df_ts.plot(figsize=(12,8), stacked=True) 然而,当将相同的数据作为条形图绘制时,这些date神秘地将其自身转换成丑陋且不可读的格式。 df_ts = df.resample("W", how='max') df_ts.plot(kind='bar', figsize=(12,8), stacked=True) 原始数据被转换了一点,以每周最大。 为什么在自动设置date发生这种根本性的变化? 我如何能有上面很好格式化的date? 这是一些虚拟数据 start = pd.to_datetime("1-1-2012") idx = pd.date_range(start, periods= 365).tolist() df=pd.DataFrame({'A':np.random.random(365), 'B':np.random.random(365)}) df.index = idx df_ts = df.resample('W', how= 'max') df_ts.plot(kind='bar', stacked=True)

matplotlib savefig()与show()不同

当我使用show()来绘制X中的图时,图看起来非常好。 但是,当我开始使用savefig()生成大量的graphics时, savefig()生成的graphics的字体,线条,多边形都比show()生成的graphics小。 我的环境是Ubuntu和show()的后端是Qt4Agg 。 如何使show()图和savefig()图看起来一致?