如何生成以文本作为y轴刻度标签的图表

2 投票
1 回答
1066 浏览
提问于 2025-04-17 15:32

我刚开始接触Python的库pandasmatplotlib。你能给我一个例子,教我怎么用matplotlib画出像这样的图吗:

在这里输入图片描述

在右边的y轴上列出了数据实例的名称。下面的x轴是与每个实例相关的某个值。

数据是.csv格式,类似于这个:

name;value1;value2
uk-2007-05;0.01;1000

理想情况下,value1value2应该在同一个图上用不同的颜色或标记来表示。

1 个回答

4
import random
import matplotlib.pyplot as plt

labels = [chr(j) for j in range(97, 115)]

fake_data1 = [random.random() for l in labels]
fake_data2 = [random.random() for l in labels]
y_data = range(len(labels))

figure()
ax = gca()

ax.grid(True)
ax.scatter(fake_data1, y_data, color='r')
ax.scatter(fake_data2, y_data, color='b')

ax.set_yticks(range(len(labels)))
ax.set_yticklabels(labels)
ax.invert_xaxis()
plt.draw()

这里的 labels 是你所有标签的一个列表,y_data 是每个数据点对应标签的索引,而 fake_data1fake_data2 则是你的 x 值。

output

撰写回答