Pyplot Mapping <string,number>对图表矩阵</string,number>

时间:2012-05-02 13:43:37

标签: python string text matplotlib

我想用pyplot进行以下操作,无法找到办法,也许这是不可能的:

给定一组S字符串和自然数N. 给定一组项目我附加了一组P(字符串€S,数字€N)对p。 给定一个坐标系统,在y轴上有S,在x轴上有N.

现在我想在此坐标系中映射每对p,以便特定项目的所有相应点都按行连接。

然后对于每个项目,我在这个坐标系中有一个图形。

一个问题是,如果字符串s€S未包含在附加到某个项目的对中,则我会有某种NULL值。这不应该被解释为(s,0)但只是被忽略......

说,我有(1)所有字符串的列表L1,(2)项目I1和(3)项目I2:

L1 = [London, Paris, Tokio, Berlin, Barcelona, Reykjavik]
I1 = [[London,0],[Paris,10],[Barcelona,23]]
I2 = [Paris,10],[Tokio,19],[Berlin,21],[Reykjavik,23]]

现在我想将I1和I2映射到y轴上具有L1的坐标系和x轴上的自然数。应合并每个项目的“要点”。

我希望我的意思很清楚。

1 个答案:

答案 0 :(得分:1)

这是你想要的吗? enter image description here

from pylab import *

L1 = ['London', 'Paris', 'Tokio', 'Berlin', 'Barcelona', 'Reykjavik']
pos = arange(len(L1))
yticks(pos, L1)

I1 = [['London',0],['Paris',10],['Barcelona',23]]
I2 = [['Paris',10],['Tokio',19],['Berlin',21],['Reykjavik',23]]

I1_y = [L1.index(el[0]) for el in I1]
I1_x = [el[1] for el in I1]

I2_y = [L1.index(el[0]) for el in I2]
I2_x = [el[1] for el in I2]

plot(I1_x, I1_y, 'o-')
plot(I2_x, I2_y, 'x-')
grid(True)
savefig('countries.png')
show()