Tag: matplotlib

绘制x轴点的自定义文本

我正在使用matplotlib和python绘制一个阴谋,如下面的示例代码。 x = array([0,1,2,3]) y = array([20,21,22,23]) plot(x,y) show() 因为它是在x轴上面的代码,我会看到绘制值0.0, 0.5, 1.0, 1.5即我的参考x值相同的值。 有没有反映将x的每个点映射到不同的string? 例如,我想要X轴显示月份名称(stringJun, July,… )或其他string像人名( "John", "Arnold", … )或时钟时间( "12:20", "12:21", "12:22", .. )。 你知道我能做什么或有什么function可以看看吗? 对于我的目的可以是matplotlib.ticker的帮助?

从python生成电影,而不保存个别帧到文件

我想从我在matplotlib中的python脚本中生成的帧创build一个h264或divx电影。 这部电影中大约有10万帧。 在networking上的例子[例如。 1],我只看到了将每个帧保存为png,然后在这些文件上运行mencoder或ffmpeg的方法。 就我而言,保存每一帧是不切实际的。 有没有办法从matplotlib生成的阴谋,并直接pipe道到ffmpeg,不生成中间文件? 用ffmpeg的C-API编程对我来说太困难了[例如。 2]。 此外,我需要一个具有良好的压缩,如x264的编码,因为电影文件否则将是一个后续步骤太大。 所以,坚持使用mencoder / ffmpeg / x264会很好。 有没有什么可以用pipe道做的[3]? [1] http://matplotlib.sourceforge.net/examples/animation/movie_demo.html [2] 如何使用x264 C API将一系列图像编码到H264中? [3] http://www.ffmpeg.org/ffmpeg-doc.html#SEC41

如何在Python中设置matplotlib中的“后端”?

我是matplotlib的新用户,我的平台是Ubuntu 10.04 Python 2.6.5 这是我的代码 import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt plt.plot([1,2,3]) 错误是: /usr/local/lib/python2.6/dist-packages/matplotlib/backends/__init__.py:41: UserWarning: Your currently selected backend, 'agg' does not support show(). Please select a GUI backend in your matplotlibrc file ('/usr/local/lib/python2.6/dist-packages/matplotlib/mpl-data/matplotlibrc') or with matplotlib.use() (backend, matplotlib.matplotlib_fname())) 我安装了Anti-Grain Geometry库apt-get install libagg但是它不起作用。 我试图使用其他像“GTK”和“TkAgg”的后端参数。 我安装了python-gtk2-dev软件包,但是仍然在下面的错误。 任何人都可以告诉我一个可执行的后端参数及其依赖库吗? 这是错误: >>> matplotlib.use('GTK') >>> import matplotlib.pyplot as plt […]

如何为matplotlib中的图中的每个绘制的线select新的颜色?

我不想为每个绘制线指定一种颜色: for i in range(20): ax1.plot(x, y) 如果你看一下这个图像,matplotlib会尝试为不同的每一行select颜色,但最终会重新使用颜色。 我只是想阻止它重复已经使用的颜色和/或给它一个颜色列表使用。

Matplotlib – 向下移动X轴标签,但不移动X轴标签

我正在使用Matplotlib绘制直方图。 使用我以前的问题的提示: Matplotlib – 标记每个垃圾箱 ,我或多或less去解决问题。 最后有一个问题 – 以前 – x轴标记(“时间(毫秒)”)正在呈现在x轴标记(0.00,0.04,0.08,0.12等)之下, 使用Joe Kingston的build议(参见上面的问题),我试着使用: ax.tick_params(axis='x', pad=30) 但是,这会同时移动x轴标记(0.00,0.04,0.08,0.12等)以及x轴标签(“时间(以毫秒)”为单位): 有没有办法将x轴标签移动到三行数字之下? 铌:您可能需要直接打开下面的PNG – 右键单击​​图像,然后查看图像(在FF),或打开图像在新标签(铬)。 由SO完成的图像大小已经使它们几乎不可读

如何将标题添加到Matplotlib的子图中?

我有一个数字,其中包含许多子图。 fig = plt.figure(num=None, figsize=(26, 12), dpi=80, facecolor='w', edgecolor='k') fig.canvas.set_window_title('Window Title') # Returns the Axes instance ax = fig.add_subplot(311) ax2 = fig.add_subplot(312) ax3 = fig.add_subplot(313) 我如何给子图添加标题? fig.suptitle为所有graphics添加标题,虽然ax.set_title()存在,但后者不会为我的子图添加任何标题。 感谢您的帮助。 编辑:纠正了关于set_title()错字。 感谢Rutger Kassies

如何在matplotlib中使用imshow将NaN值作为特殊颜色来绘制?

我正在尝试在matplotlib中使用imshow来将数据绘制为热图,但其中一些值是NaN。 我想NaNs被渲染为一个在颜色映射中找不到的特殊颜色。 例: import numpy as np import matplotlib.pyplot as plt f = plt.figure() ax = f.add_subplot(111) a = np.arange(25).reshape((5,5)).astype(float) a[3,:] = np.nan ax.imshow(a, interpolation='nearest') f.canvas.draw() 由此产生的图像出乎意料地全部为蓝色(喷射色彩图中最低的颜色)。 但是,如果我这样做阴谋: ax.imshow(a, interpolation='nearest', vmin=0, vmax=24) – 然后我得到更好的东西,但是NaN值被绘制成与vmin相同的颜色…是否有一种优雅的方式可以设置NaN以特殊颜色(例如:灰色或透明)绘制?

你如何确定matplotlib正在使用哪个后端?

无论是交互式的,例如从一个Ipython会话中,或者从一个脚本中,如何确定matplotlib正在使用哪个后端?

警告太多开放的数字

在一个脚本中,我创build了许多数字fix, ax = plt.subplots(…) ,我得到警告RuntimeWarning:超过20个数字已打开。 通过pyplot接口( matplotlib.pyplot.figure )创build的数字将保留,直到显式closures并可能消耗太多的内存。 然而,我不明白为什么我会得到这个警告,因为用fig.savefig(…)保存graphics后,我用fig.clear(); del fig删除它fig.clear(); del fig fig.clear(); del fig 。 在我的代码中,我一次只能打开一个以上的数字。 不过,我得到了太多开放数字的警告。 这是什么意思/我怎样才能避免得到警告?

Matplotlib子图的通用xlabel / ylabel

我有以下情节: fig,ax = plt.subplots(5,2,sharex=True,sharey=True,figsize=fig_size) 现在我想给这个图表常用的x轴标签和y轴标签。 “共同”是指在整个子图的网格下方应该有一个大的x轴标签,而在右边的是一个大的y轴标签。 在plt.subplots的文档中我找不到任何关于这个的东西,而且我的googlings提示我需要创build一个大的plt.subplot(111)来开始 – 但是我怎样才能把我的5 * 2个子图放入使用plt.subplots ?