【问题标题】:Plotting superimposed charts (line and bar) with pandas and matplotlib使用 pandas 和 matplotlib 绘制叠加图表(折线图和条形图)
【发布时间】:2020-01-05 04:12:47
【问题描述】:

我正在测试 pandas 在同一张图表上绘制财务数据(价格和数量)的能力。如果我尝试将两个数据都呈现为线条,它可以正常工作:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

a = pd.date_range('2019-01-01', '2019-06-01',freq = 'D')
b = np.random.normal(size = len(a), loc = 50)
v = np.random.normal(size = len(a), loc = 1000)
c = pd.DataFrame(index = a, data = zip(b,v), columns = ['price', 'volume'])

fig, ax = plt.subplots(figsize = (15,8))
bx = ax.twinx()
c.price.plot.line(ax = ax, color = 'r')
c.volume.plot.line(ax = bx,  color = 'g', alpha = .2)
plt.show()

这给出:

但是,如果我尝试将一个呈现为一条线,另一个呈现为条形图,则将最后 3 行替换为:

c.price.plot.line(ax = ax, color = 'r')
c.volume.plot.bar(ax = bx,  color = 'g', alpha = .2)
plt.show()

这给出了错误的结果:

有人知道如何使上面的代码与 line + bar 一起工作吗??

【问题讨论】:

  • 这是一个很常见的问题,它的最后一个版本只出现在yesterday。简而言之:使用 matplotlib,而不是 pandas。

标签: python pandas matplotlib


【解决方案1】:

使用 Matplotlib 绘图库。

Matplotlib 的函数 pyplot 有函数 barplot。您可以使用它们在同一个图表上显示数据。

Example

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 2019-05-24
    • 2020-05-06
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多