以条形图形式打印列表Python Matplotlib
我有一个列表,如下所示:以条形图形式打印列表Python Matplotlib,python,matplotlib,plot,Python,Matplotlib,Plot,我有一个列表,如下所示: [[1,100.1],[2,133.222],[3,198.0]] 我试图使用这些数据在matplotlib中绘制一个条形图,其中列表中每个元素的第一个元素是x轴(它始终是1-1000之间的整数,没有重复),第二个元素是y轴值 我正在使用Python 3。如何绘制此图?您需要将x值与y值分开。这可以通过zip完成: 第一: import numpy as np import matplotlib.pypl as plt 现在: 现在画条: In [267]: plt
[[1,100.1],[2,133.222],[3,198.0]]
我试图使用这些数据在matplotlib中绘制一个条形图,其中列表中每个元素的第一个元素是x轴(它始终是1-1000之间的整数,没有重复),第二个元素是y轴值
我正在使用Python 3。如何绘制此图?您需要将x值与y值分开。这可以通过
zip
完成:
第一:
import numpy as np
import matplotlib.pypl as plt
现在:
现在画条:
In [267]: plt.bar(xs, ys)
条形图不会自动设置条形图的宽度。在目前的情况下,宽度很好,但更系统的方法是取x值之间的差值,如下所示:
In [269]: np.diff(xs)
Out[269]: array([1, 1])
In [268]: plt.bar(xs, ys, width=0.9 * np.min(np.diff(xs)))
import matplotlib.pyplot as plt
data = [[1,100.1],[2,133.222],[3,198.0]]
x = map(lambda x: x[0], data)
y = map(lambda x: x[1], data)
plt.bar(x,y)
通常,x值的间距相等,但情况并非如此。您可能希望将宽度设置为x值之间的最小差值,因此条形图的生成方式如下:
In [269]: np.diff(xs)
Out[269]: array([1, 1])
In [268]: plt.bar(xs, ys, width=0.9 * np.min(np.diff(xs)))
import matplotlib.pyplot as plt
data = [[1,100.1],[2,133.222],[3,198.0]]
x = map(lambda x: x[0], data)
y = map(lambda x: x[1], data)
plt.bar(x,y)
我会选择这样的方式:
In [269]: np.diff(xs)
Out[269]: array([1, 1])
In [268]: plt.bar(xs, ys, width=0.9 * np.min(np.diff(xs)))
import matplotlib.pyplot as plt
data = [[1,100.1],[2,133.222],[3,198.0]]
x = map(lambda x: x[0], data)
y = map(lambda x: x[1], data)
plt.bar(x,y)
工作非常出色。谢谢你的帮助!