我试图绘制我的Raspberry Pi的温度并在网页上显示该情节。这工作得相当好。然而,我试图根据感知的风险为不同区域的颜色着色(我不确定它们是否真的对我的Pi造成了风险,但我觉得在90°C时运行它会感觉不舒服。) / p>
我正在使用此代码创建情节:
fig = plt.figure()
# color regions
plt.fill([0, 0, len(temps)-1, len(temps)-1], [80, 100, 100, 80], 'r', alpha=0.2, linestyle=None)
plt.fill([0, 0, len(temps)-1, len(temps)-1], [60, 80, 80, 60], 'y', alpha=0.2, linestyle=None)
plt.fill([0, 0, len(temps)-1, len(temps)-1], [0, 60, 60, 0], 'g', alpha=0.2, linestyle=None)
# modify axis
plt.axis([0, len(temps)-1, 0, 100])
plt.xticks([])
# plot and safe
plt.plot(temps, color='k')
plt.savefig(buf, format='png')
plt.close(fig)
我不喜欢这些地区的“硬边缘”,但我似乎无法找到让它们“流入”彼此的方法。有谁知道如何解决这个问题或者能指出我正确的方向?
答案 0 :(得分:3)
按照here和here中的示例(请向他们展示一些爱情),听起来你想要了解以下内容......
import numpy as np
from matplotlib import pyplot as plt
import matplotlib.colors as clr
# Construct a colormap
cmap = clr.LinearSegmentedColormap.from_list('cmap for Dennis Hein',
[(0, '#ff0000'), (70/100., '#ffff00'), (100/100., '#00ff00')], N=64)
# Generate figure and axes
fig, ax = plt.subplots()
# Limits
xmin, xmax = 0, 100
ymin, ymax = 0, 100
# Fake data
X = [[.0, .0], [1.0, 1.0]]
ax.imshow(X, interpolation='bicubic', cmap = cmap,
extent=(xmin, xmax, ymin, ymax), alpha = 0.2)
ax.plot(np.random.normal(loc = 50, scale = 2, size = 101), c = 'k')
plt.show()