假设我有以下数据透视表(这是the documentation中创建的数据透视表):
In [8]: tuples = list(zip(*[['bar', 'bar', 'baz', 'baz',
...: 'foo', 'foo', 'qux', 'qux'],
...: ['one', 'two', 'one', 'two',
...: 'one', 'two', 'one', 'two']]))
...:
In [9]: index = MultiIndex.from_tuples(tuples, names=['first', 'second'])
In [10]: df = DataFrame(randn(8, 2), index=index, columns=['A', 'B'])
In [11]: df2 = df[:4]
In [12]: df2
Out[12]:
A B
first second
bar one 0.721555 -0.706771
two -1.039575 0.271860
baz one -0.424972 0.567020
two 0.276232 -1.087401
如何使用此表在轴上绘制“bar”和“baz”(第二个,A)(即我想用点(一个,0.72)创建一个图,(二, -1.039),(one,-0.42),(two,0.276),其中前两个点的颜色与后两个颜色不同。)
我尝试使用
df2[[0]].plot()
但是这会在x轴上依次绘制点,以便它们被排序((bar,one),。721),((bar,two),-1.039)等,而不是两个'1 '点和两个'两个'点共享一个垂直轴。
答案 0 :(得分:4)
好的,我明白了。关键是首先取消堆积数据:
import matplotlib.pyplot as plt
t=df2.unstack(level=0)
plt.plot(t[[0]], color='red')
plt.plot(t[[1]], color='blue')
plt.xticks(range(2), ['one','two'], size='small')
plt.show()