将Matplotlib从1.4.3升级到1.5.0.p

2024-04-20 05:55:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个使用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的版本注释,看不到任何明显的变化,但想知道是否还有其他人遇到过类似的行为?你知道吗

谢谢你

史蒂夫


Tags: normdatamatplotlibvaluecmmeanarraycmap
1条回答
网友
1楼 · 发布于 2024-04-20 05:55:57

使用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()

enter image description here

也许问题是你的轴限制不包括数据点?手动设置散布偏移不会自动重新缩放轴。你知道吗

如果不能访问其余的代码和输入数据,很难猜出问题出在哪里。你知道吗

相关问题 更多 >