具有大x值的Matplotlib轮廓失真

时间:2016-04-12 10:11:51

标签: python numpy matplotlib graphics contour

任何人都可以提供任何信息,为什么当x值很大时这个轮廓图会变形?至少在我看来,这个数字应该保持完全相同,但也许我误解了一些东西。

使用shift = 0(或最多shift = 100000)时的数字:

enter image description here

使用shift = 1000000时的数字:

enter image description here

代码:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as ml

shift = 0 # works
# shift = 1000000 # distorts the graph because of ?

x = np.array([7, 3, 3, 2, 6, 7, 2, 7, 2, 7]) + shift
y = np.array([1, 8, 1, 5, 6, 5, 8, 4, 1, 8])
z = np.array([0.5485118, 0.53838622, 0.93582844, 0.13831005, 0.45559201,
              0.4032324, 0.73419538, 0.03208198, 0.55323105, 0.95654892])

xi = np.linspace(min(x), max(x), 200)
yi = np.linspace(min(y), max(y), 200)
zi = ml.griddata(x, y, z, xi, yi, interp='linear')

plt.contour(xi, yi, zi, 15, linewidths=0.5, colors='k')
plt.pcolormesh(xi, yi, zi, cmap=plt.get_cmap('rainbow'))

plt.colorbar()
plt.scatter(x, y, marker='o', c='b', s=5, zorder=10)
plt.show()

我正在使用matplotlib == 1.4.3,numpy == 1.9.2,python == 2.7.11

如果您想知道,此代码只是问题的演示。当我尝试用时间线(以秒为单位)组成一个由Unix UTC时代组成的x轴时,我注意到了这种奇怪的行为,我现在正试图找出正确的方法来处理它。

谢谢!

0 个答案:

没有答案