紧凑型水平仪Matplotlib

时间:2016-09-26 13:39:18

标签: matplotlib

如何创建一个紧凑的水平仪表,例如温度计温度计,使用Matplotlib压力气压计。仪表的比例将分为范围;每个范围表示高 - 高,高。低和低 - 低和指针读取值?是否可以在matplotlib中创建这样的量表?

1 个答案:

答案 0 :(得分:1)

您可以使用颜色栏。

例如:

import matplotlib.pyplot as plt
import matplotlib as mpl

fig = plt.figure(figsize=(8, 2))
ax = fig.add_axes([0.1, 0.4, 0.8, 0.2])

bounds = [-20, -10, 0, 10, 20]
labels = ('low-low', 'low', 'high', 'high-high')

cmap = mpl.cm.coolwarm
norm = mpl.colors.Normalize(vmin=bounds[0], vmax=bounds[-1])

cb = mpl.colorbar.ColorbarBase(
    ax,
    cmap=cmap,
    norm=norm,
    orientation='horizontal',
    boundaries=bounds,
    label='temperature (degrees celcius)',
)

for i, label in enumerate(labels):
    xpos = float((2*i + 1))/(2*len(labels))
    ax.annotate(label, xy=(xpos, 0.5), xycoords='axes fraction', ha='center', va='center')

plt.show()

产生类似这样的东西:

temperature guage example

有关详细信息,请参阅these examples in the matplotlib docs