Questions tagged «matplotlib»

Matplotlib是Python的绘图库,可以交互使用或嵌入独立的GUI中。其紧凑的“ pyplot”界面类似于MATLAB®的绘图功能。

4
在matplotlib中动态更新图
我正在用Python开发一个应用程序,该应用程序从串行端口收集数据并针对到达时间绘制收集的数据图。数据的到达时间不确定。我希望在收到数据时更新绘图。我搜索了如何执行此操作,发现了两种方法: 清除绘图,然后重新绘制所有点的绘图。 通过在特定间隔后对其进行更改来对图进行动画处理。 我不喜欢第一个程序,因为该程序会运行很长时间(例如一天),并且会收集数据,因此重绘该图将非常慢。第二种方法也不可取,因为数据的到达时间不确定,我希望仅在接收到数据时更新绘图。 有没有一种方法可以仅在收到数据后才通过添加更多点来更新图?

6
将y轴格式化为百分比
我有一个用熊猫创建的现有情节,如下所示: df['myvar'].plot(kind='bar') y轴的格式为float,我想将y轴更改为百分比。我发现的所有解决方案都使用ax.xyz语法,并且只能将代码放置在创建绘图的上方行下方(我无法在上面的行中添加ax = ax。) 如何在不更改上面的行的情况下将y轴格式化为百分比? 这是我找到的解决方案,但需要重新定义图: import matplotlib.pyplot as plt import numpy as np import matplotlib.ticker as mtick data = [8,12,15,17,18,18.5] perc = np.linspace(0,100,len(data)) fig = plt.figure(1, (7,4)) ax = fig.add_subplot(1,1,1) ax.plot(perc, data) fmt = '%.0f%%' # Format you want the ticks, e.g. '40%' xticks = mtick.FormatStrFormatter(fmt) ax.xaxis.set_major_formatter(xticks) plt.show() …

2
将文本放在matplotlib图的左上角
如何在matplotlib图形的左上角(或右上角)放置文本,例如,左上角图例所在的位置,还是绘图的顶部,但在左上角?例如,如果它是一个plt.scatter(),那么将在散点图的平方内放置一些东西,将其放在最左上角。 我想在不理想地知道例如散点图的比例的情况下进行此操作,因为它会随数据集的不同而变化。我只希望它的文字大致在左上方,或大致在右上方。使用图例类型定位时,它无论如何都不应与任何散点图点重叠。 谢谢!
112 python  plot  matplotlib 

4
如何为上限设置“自动”,但通过matplotlib.pyplot保持固定的下限
我想将y轴的上限设置为“自动”,但我想使y轴的下限始终为零。我尝试了“自动”和“自动调整范围”,但它们似乎不起作用。先感谢您。 这是我的代码: import matplotlib.pyplot as plt def plot(results_plt,title,filename): ############################ # Plot results # mirror result table such that each parameter forms an own data array plt.cla() #print results_plt XY_results = [] XY_results = zip( *results_plt) plt.plot(XY_results[0], XY_results[2], marker = ".") plt.title('%s' % (title) ) plt.xlabel('Input Voltage [V]') plt.ylabel('Input Current [mA]') …
112 python  matplotlib 


4
用PyPlot绘制平滑线
我有以下绘制图形的简单脚本: import matplotlib.pyplot as plt import numpy as np T = np.array([6, 7, 8, 9, 10, 11, 12]) power = np.array([1.53E+03, 5.92E+02, 2.04E+02, 7.24E+01, 2.72E+01, 1.10E+01, 4.70E+00]) plt.plot(T,power) plt.show() 就目前而言,这条线从一条直线到另一条直线看起来不错,但在我看来可能会更好。我想要的是使两点之间的线平滑。在Gnuplot中,我会用绘制smooth cplines。 在PyPlot中有一种简单的方法吗?我已经找到了一些教程,但是它们似乎都相当复杂。

4
在matplotlib中将x轴移动到绘图的顶部
基于关于matplotlib中的热图的问题,我想将x轴标题移动到图的顶部。 import matplotlib.pyplot as plt import numpy as np column_labels = list('ABCD') row_labels = list('WXYZ') data = np.random.rand(4,4) fig, ax = plt.subplots() heatmap = ax.pcolor(data, cmap=plt.cm.Blues) # put the major ticks at the middle of each cell ax.set_xticks(np.arange(data.shape[0])+0.5, minor=False) ax.set_yticks(np.arange(data.shape[1])+0.5, minor=False) # want a more natural, table-like display ax.invert_yaxis() ax.xaxis.set_label_position('top') …

2
调用pylab.savefig在ipython中不显示
我需要在文件中创建图形,而不在IPython Notebook中显示它。我不是之间的相互作用明确IPython,并matplotlib.pylab在这方面。但是,当我调用pylab.savefig("test.png")当前图形时,除了保存在中外,还会显示get test.png。当自动创建大量绘图文件时,这通常是不希望的。或者在需要一个中间文件供其他应用进行外部处理的情况下。 不知道这是一个matplotlib或IPython笔记本电脑的问题。

3
在python matplotlib中绘制(x,y)坐标列表
我有一个列表,(a, b)希望matplotlib在python中绘制为实际的xy坐标。当前,它正在绘制两个图,其中列表的索引给出x坐标,第一个图的y值是对中的as,第二个图的y值是对中的bs。 澄清一下,我的数据看起来像这样:li = [(a,b), (c,d), ... , (t, u)] 我想做一个单行代码,只是调用plt.plot()不正确。如果我不需要单线,我可以轻松地做: xs = [x[0] for x in li] ys = [x[1] for x in li] plt.plot(xs, ys) 如何获取matplotlib将这些对绘制为xy坐标?

7
如何在matplotlib中为图形中的每个绘图线选择新颜色?
我不想为每条绘制的线指定颜色,而是让每条线获得不同的颜色。但是如果我运行: from matplotlib import pyplot as plt for i in range(20): plt.plot([0, 1], [i, i]) plt.show() 然后我得到以下输出: 如果看上面的图片,您会看到matplotlib尝试为每行不同的颜色选择颜色,但最终它会重用颜色-前十行与后十行使用相同的颜色。我只是想阻止它重复使用过的颜色和/或向其提供要使用的颜色列表。
109 matplotlib 


2
Matplotlib-向下移动X轴标签,但不向下移动X轴刻度
我正在使用Matplotlib绘制直方图。使用上一个问题的提示:Matplotlib-给每个垃圾箱贴标签,我或多或少地解决了问题。 最后一个问题-以前-x轴标签(“时间(以毫秒为单位)”)呈现在x轴刻度线下方(0.00、0.04、0.08、0.12等) 根据Joe Kingston的建议(请参阅上面的问题),我尝试使用: ax.tick_params(axis='x', pad=30) 但是,这将同时移动x轴刻度线(0.00、0.04、0.08、0.12等)以及x轴标签(“时间(以毫秒为单位)”): 有什么方法可以仅将x轴标签移动到三行图形的下面吗? Nb:您可能需要直接在下面打开PNG-右键单击图像,然后单击“查看图像”(以FF键)或“在新标签页中打开图像”(Chrome)。SO完成的图像调整大小使它们几乎不可读

5
以非常高的质量将图像保存在python中
如何以极高的质量保存python图? 也就是说,当我继续放大保存在pdf文件中的对象时,没有模糊吗? 另外,保存它的最佳方式是什么? png,eps?还是其他?我不能做,pdf因为有一个隐藏的数字发生,导致Latexmk编译混乱。


5
如何在matplotlib中设置纵横比?
我正在尝试绘制一个正方形图(使用imshow),即纵横比为1:1,但我不能。这些都不起作用: import matplotlib.pyplot as plt ax = fig.add_subplot(111,aspect='equal') ax = fig.add_subplot(111,aspect=1.0) ax.set_aspect('equal') plt.axes().set_aspect('equal') 似乎只是忽略了这些调用(matplotlib我经常遇到的一个问题)。
108 python  matplotlib 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.