我有一個關于情節的問題。我有一個名為log_return_data的資料框。這是資料框的快照:

我想在 1 個圖中繪制每個收益的 3 個圖和相應的時間(在索引列中)。這是我寫的代碼:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
fig1, axis = plt.subplots(3,1,figsize=(9,6),dpi=100)
log_return_data['HPQ_Returns'][1377:].plot(ax=axis[0], title='HPQ', fontsize=8, sharex=True, linewidth=0.6)
log_return_data['MSFT_Returns'][1377:].plot(ax=axis[1], title='MSFT', fontsize=8,sharex=True, linewidth=0.6)
log_return_data['INTC_Returns'][1377:].plot(ax=axis[2], title='INTC', fontsize=8,sharex=True, linewidth=0.6)
plt.savefig('returns')
這是結果:

但是,我希望年份資料不僅在最后一個圖(INTC 資料)中,而且在 HPQ 和 MSFT(2 個第一個圖)中。反正有解決這個問題嗎?謝謝。
##Edit :在第一個回答者的幫助下,我將代碼更改為:
log_return_data['HPQ_Returns'][1377:].plot(ax=axis[0], title='HPQ', fontsize=8, linewidth=0.6)
這是結果:

如何在每個繪圖的 x 軸上洗掉 3 個標題“日期”?
uj5u.com熱心網友回復:
由于所有三個繪圖的時間索引都相同,因此您可以sharex=False在所有三個plot呼叫中使用(這是默認設定)并且您應該獲得所有 xticks 并且仍然使繪圖正確對齊:
log_return_data['HPQ_Returns'][1377:].plot(ax=axis[0], title='HPQ', fontsize=8, sharex=False, linewidth=0.6)
log_return_data['MSFT_Returns'][1377:].plot(ax=axis[1], title='MSFT', fontsize=8,sharex=False, linewidth=0.6)
log_return_data['INTC_Returns'][1377:].plot(ax=axis[2], title='INTC', fontsize=8,sharex=False, linewidth=0.6)
sharex=True當您的不同系列具有不同的時間索引不完全對齊時,會生成不同的圖對齊,但這不是您的情況。
評論后編輯:
由于現在標題與軸標簽和軸刻度標簽重疊,您可以嘗試以下操作plt.savefig():
# This removes the 'Date' label from every axis except the last.
for ax in axis[:-1]:
ax.set_xlabel('')
# This rearranges the layout (the title still would overlap with the tick labels).
plt.tight_layout()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/476704.html
標籤:Python matplotlib 阴谋
