从数据框在条形图的顶部创建折线图时出错

兰迪·乔

我一直在尝试在共享相同x轴的堆积条形图的上方创建折线图。到目前为止,我想出了这段代码,但是由于完成转置数据后尝试引用折线图的列名时遇到了KeyError,因此试图完成折线图的其余代码会花费几个小时帧。

#Slices the dataset to create stacked bar chart
df1 = df.iloc[1:6]

plt.figure(1, figsize=(10,10))
barchart = df1.T.plot(kind = 'bar', stacked = True)
plt.twinx()
linechart = plt.plot()
约翰·C

您可以使用的第一列,df.T然后创建类似于条形图的熊猫线图。下面的代码首先创建一个玩具数据框,类似于问题中的数据,以绘制条形图和对齐的线图。可以通过组合两个情节的图例get_legend_handles_labels()请注意,pandas图函数不会返回图,而是会ax在其上创建图的matplotlib

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

N = 5
df = pd.DataFrame([np.random.randint(5000, 7000, N), np.random.randint(1200, 1400, N), np.random.randint(500, 700, N),
                   np.random.randint(900, 1500, N), np.random.randint(1100, 1400, N), np.random.randint(1700, 2300, N)],
                  columns=['2019 Q1', '2019 Q2', '2019 Q3', '2019 Q4', '2020 Q1'],
                  index=['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff'])
df['2020 Q1'] *= 0.6
df1 = df.iloc[1:]

ax1 = df1.T.plot(kind='bar', stacked=True, rot=0)
ax2 = ax1.twinx()
df.T['aaa'].plot(kind='line', color='navy', marker='*', ls='-', ax=ax2)
ax2.set_ylim(ymin=0)

h1, l1 = ax1.get_legend_handles_labels()
h2, l2 = ax2.get_legend_handles_labels()
ax1.legend(h2 + h1, l2 + l1)

plt.tight_layout()
plt.show()

样例

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

条形图顶部中间的折线图点

如何在chart.js中的条形图和折线图顶部显示数据值3

如何从折线图更改为条形图

堆叠条形图+折线图角度库

将组合的条形图与截断的折线图组合

在JavaScript中组合条形图和折线图

分组条形图和折线图

ggplot组合的条形图和折线图

Highcharts获得组合的条形图和折线图

如何使用ggplot在一个图表中创建条形图和折线图

如何使用 ObservableLists 在 Javafx 中创建条形图或折线图

使用选取框行为创建折线图和条形图

Python:使用 DataFrame 绘制折线图和条形图时 DatetimeIndex 的不同行为

下钻时的堆叠条形图颜色(单击折线图打开)

组合条形图和折线图(python)时出现问题

条形图和折线图在同一图表区域中时不同步

ChartJS - 在条形图/折线图上单独显示/隐藏数据而不是整个数据集

创建组合条形图和折线图,其值为“0”,从垂直线的中间开始 GOOGLE CHARTS

无法在D3条形图/折线图中显示折线

情节:如何将条形图和折线图与条形图组合为子图?

使用pandas和matplotlib绘制叠加图(折线图和条形图)

在 winform 上创建折线图时出错

无法使用pandas plot()函数组合条形图和折线图

D3.js组合条形图和折线图

使用iOS图表的组合图表(折线图和条形图)

Flot:在一张图表中组合堆积的条形图和折线图

堆积的条形图和折线图与任何android库在同一图中?

为什么Matplotlib开始绘制条形图而不是折线图

在ggplot2中组合条形图和折线图(双轴)