亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從數據框在條形圖頂部創建折線圖時出錯

從數據框在條形圖頂部創建折線圖時出錯

Helenr 2023-07-27 16:14:16
我一直在嘗試在共享相同 x 軸的堆疊條形圖頂部創建折線圖。到目前為止,我已經想出了這段代碼,但我在嘗試完成折線圖的剩余代碼時卡住了幾個小時,因為在轉置數據后嘗試引用折線圖的列名稱時遇到了 KeyError框架。#Slices the dataset to create stacked bar chartdf1 = df.iloc[1:6]plt.figure(1, figsize=(10,10))barchart = df1.T.plot(kind = 'bar', stacked = True)plt.twinx()linechart = plt.plot()
查看完整描述

1 回答

?
弒天下

TA貢獻1818條經驗 獲得超8個贊

您可以使用第一列df.T,然后創建一個類似于條形圖的 pandas 線圖。下面的代碼首先創建一個與問題中的數據類似的玩具數據框,以繪制條形圖和對齊線圖。兩個情節的圖例可以通過 組合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()

http://img1.sycdn.imooc.com//64c2277900015ae708630346.jpg

查看完整回答
反對 回復 2023-07-27
  • 1 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號