【问题标题】:Plotting from Pivot Table using Pandas使用 Pandas 从数据透视表绘图
【发布时间】:2014-10-07 17:34:00
【问题描述】:

假设我有以下数据透视表(这是在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

如何使用此表在同一个图上用坐标轴(第二个,A)绘制“bar”和“baz”(即我想用点(一个,0.72)创建一个图,(两个, -1.039), (one, -0.42), (two, 0.276),其中前两个点以与后两个不同的颜色绘制)。

我尝试过使用

df2[[0]].plot() 

但是这会在 x 轴上按顺序绘制点,因此它们是有序的 ((bar,one), .721), ((bar,two), -1.039) 等,而不是两个“一” ' 点和两个 'two' 点共享一个垂直轴。

【问题讨论】:

    标签: python matplotlib plot pandas


    【解决方案1】:

    好的,我想通了。关键是先拆开数据:

    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()
    

    【讨论】:

      猜你喜欢
      • 2016-07-08
      • 2018-10-28
      • 2019-09-30
      • 2018-09-24
      • 2017-09-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-24
      • 1970-01-01
      相关资源
      最近更新 更多