我有一个使用Matplotlib的实时散点图。我最初创建的散点图是空的,如下所示:
pv.sc = axis.scatter([],[],c=[],s=10, lw=0,cmap=cm)
随着要绘制的数据的更新,我使用set_offsets和set_facecolor更新我正在绘制的值,如下所示:
scalar_value = array(pv.Data[0][1])
scalar_time = array(pv.Data[0][0])
lat,lon,alt = self.InterpGPS(scalar_time)
c_mean = mean(scalar_value)
stdev = std(scalar_value)
pv.sc.set_offsets(zip(lon,lat))
norm = mpl.colors.Normalize(vmin = c_mean, vmax = c_mean+2*stdev, clip = False)
m = mpl.cm.ScalarMappable(norm=norm, cmap=cm)
pv.sc.set_facecolor(m.to_rgba(scalar_value))
pv.sc.set_clim(vmin = c_mean, vmax = c_mean+2*stdev)
在Matplotlib 1.4.3下,这可以很好地工作,但升级到1.5.0后,颜色图消失了。不会产生错误,只会产生颜色。我查看了Matplotlib的版本说明,看不到任何明显的变化,但是想知道是否有其他人遇到过类似的行为?
谢谢,
史蒂夫
答案 0 :(得分:0)
以下使用matplotlib 1.5.0完美适合我:
import numpy as np
from matplotlib import pyplot as plt
print(plt.matplotlib.__version__)
# 1.5.0
fig, ax = plt.subplots(1, 1)
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
sc = ax.scatter([], [], c=[], cmap='coolwarm', vmin=0, vmax=1, s=60)
sc.set_offsets(np.random.rand(2, 100))
sc.set_array(np.random.rand(100))
plt.show()
问题可能是您的轴限制不包含数据点?手动设置散点图偏移不会自动重新缩放轴。
如果没有访问其余代码和输入数据,很难猜出问题可能是什么。