首页 > 解决方案 > 在单独的图中绘制数组的每个值

问题描述

我想绘制一个随机数组的每个值,每个值都在不同的图中。数组中的值表示一条线的长度,所以如果我有 [ 2, 6, 9] 我想要三个图,每个图都有一条长度为 2、6 和 9 的水平线。此外,我希望每个值都是链接的带颜色。

我这样做了,但也许我以错误的方式认为它可以更简单。有什么帮助吗?

line_lengths = np.random.randint(0, 10 ,9)
y= 1
#Assign colors to the values in line_lengths
colors = plt.cm.rainbow(np.linspace(0, 1, len(line_lengths)))
c = [colors[val] for val in line_lengths]


print(line_lengths)
#Plot each value of line_lengths in a single plot
for  line_length, color in zip( line_lengths, c):
    plt.plot(xmin=0, xmax=line_length, colors=color)

标签: pythonarraysmatplotlibplot

解决方案


我使用了子图:

line_lengths = np.random.randint(0, 9 ,9)
y= 1
#Assign colors to the values in line_lengths
colors = plt.cm.rainbow(np.linspace(0, 1, len(line_lengths)))
c = [colors[val] for val in line_lengths]

print(line_lengths)
fig, axes = plt.subplots(3, 3, figsize=(7.2, 7.2))
axes = axes.ravel()
#Plot each value of line_lengths in a single plot
for i, (line_length, color) in enumerate(zip( line_lengths, c)):
    axes[i].plot([0, line_length], [y*i, y*i], color=color)
    axes[i].set_xlim(-1, 10)

在此处输入图像描述


推荐阅读