为什么Matplotlib的plot()会绘制与传入的值不同的值?

时间:2017-09-09 05:04:43

标签: python matplotlib

我为Matplotlib提供了一些Python代码(在Python3上运行),归结为以下内容:

title = 'A title'
fig, ax = plt.subplots()
x_values = []  
y_values = []  
# x_values and y_values are populated by extracting values from a dict I pass in.
# The values are extracted correctly; I printed them out for a sanity check.

plt.plot(x_values, y_values)

ax.set_xlim([0, 100])
plt.ylabel('Y')
plt.xlabel('X')
plt.title(title, fontsize=title_size)
fig.autofmt_xdate()

plt.show()

以下显示了特定字典的x_values和y_values中的内容(所有y值对于此特定数据集都是相同的): List contents

以下是图形输出: Bad graph

请注意,不仅图形形状是意外的,而且y轴刻度也非常偏离。

我无法理解为什么会这样。对于具有更多变化的其他数据集,我得到更好的图形,其中绘制的值与我的原始值匹配。例如: Other list contents Good graph

是否有一些奇怪的情节()我不知道?或者我使用错误的序列或代码组合?否则,是什么导致这个?

1 个答案:

答案 0 :(得分:2)

情节是自动缩放的。你的第一个情节中的Vaues范围很小。如果你看你的图的左上角,有一个数字1e-7 + 2.44005249e2意味着y上的所有值必须读作value_on_y*1e-7 + 244.005249,换句话说,y轴上的数字只有6和7数据中分隔符后的数字。