2013-02-11 35 views
2

我刚刚开始了解Python库pandasmatplotlib。你能告诉我作为一个例子,如何以产生类似于这一个情节与matplotlib如何生成作为ytick标签的文本图

enter image description here

在y轴的数据实例的名称列在右侧。下面的x轴表示与每个实例相关的某个值。

的数据是在类似于该.csv格式:

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

理想情况下,既value1value2应与不同颜色或标记相同的情节被绘制。

+0

这看起来像一个简单的x/y点图旋转90度 – slezica 2013-02-11 20:27:37

+0

可能重复http://stackoverflow.com/questions/12645946/imshow-labels-as-any-function-of-the- image-indices/12654847#12654847 – tacaswell 2013-02-11 20:51:23

+0

请发布一个链接到数据集。 – 2013-02-11 22:09:04

回答

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_data2x值。

output

+0

+1在附注上,明确地设置格式化程序和定位程序可能是这样的东西的矫枉过正。 – 2013-02-12 00:26:41

+0

@JoeKington你可能是对的。我扩大/简化了答案。 – tacaswell 2013-02-12 05:44:48

+0

@tcaswell谢谢。我是否也可以将标签放在图的右侧,并删除'1.2'和'-0.2'标记? – clstaudt 2013-02-12 13:43:13

相关问题