如何制作一维图,其中值用颜色表示,而不是在y轴上?

时间:2020-09-16 21:46:21

标签: python matplotlib

我正在尝试在matplotlib中生成图,这将显示哪种混合类型在恒星的不同部分(一维部分)中占主导地位。数据是从文件加载的,混合类型由整数(从1到6)表示。我想显示它,而不是在标准二维图上,而是在颜色栏上显示,其中参数的值不是以y值显示,而是以x轴的颜色显示。

1 个答案:

答案 0 :(得分:0)

有许多创建此类图的方法。根据要显示的图数和x值的多少,您可能会希望使用其他方法。如果值中的层次结构清晰,则可以通过选择的颜色反映出来。

下面是使用imshow()入门的示例。

import numpy as np
import matplotlib.pyplot as plt

x = np.random.randint(1, 7, 25)
cmap = plt.cm.get_cmap('inferno', 6)
plt.imshow(x.reshape(1, -1), cmap=cmap, vmin=1, vmax=6)
for i in range(len(x)):
    plt.text(i, 0, x[i], ha='center', va='center', color='navy' if x[i] >= 5 else 'white')
plt.xticks(range(len(x)))
plt.gca().yaxis.set_visible(False)
plt.show()

example plot