簡體   English   中英

Matplotlib 子圖使用 for 循環 Python

[英]Matplotlib subplot using for loop Python

嘗試創建多個圖表並將其保存為一張圖像。 我設法合並了多個圖表,但有些地方出了問題。 出於某種原因,無法只為最后一張圖表設置所有圖表的標題。 數字也沒有像上一張圖表那樣完整顯示。 還想將 colors 更改為線條(白色)、標簽(白色)、背景(黑色)並旋轉日期以便於閱讀。 在此處輸入圖像描述

dataSet = {"info":[{"title":{"Value":[list of data]}},{"title":{"Value":[list of data]}}, 
...]}

fig, ax = plt.subplots(2, 3, sharex=False, sharey=False, figsize=(22, 10), dpi=70, 
linewidth=0.5)
ax = np.array(ax).flatten()

for i, data in enumerate(dataSet['info']):
    for key in data:
        df: DataFrame = pd.DataFrame.from_dict(data[key]).fillna(method="backfill")
        df['Date'] = pd.to_datetime(df['Date'], unit='ms')
        df.index = pd.DatetimeIndex(df['Date'])
        x = df['Date']
        y = df['Value']
        ax[i].plot(x, y)
    current_values = plt.gca().get_yticks()
    plt.gca().set_yticklabels(['{:,.0f}'.format(x) for x in current_values])
    plt.title(key)

plt.show()

您的圖形由各種軸對象組成。 要為每個 plot 設置標題,您需要使用相應的軸 object,它提供了您需要更改外觀的相關方法。 參見示例:

import matplotlib.pyplot as plt
import numpy as np

fig, axarr = plt.subplots(2, 2)

titles = list("abcd")

for ax, title in zip(axarr.ravel(), titles):
    x = np.arange(10)
    y = np.random.random(10)
    ax.plot(x, y, color='white')
    ax.set_title(title)
    ax.set_facecolor((0, 0, 0))
    
fig.tight_layout()

為了更改標簽、顯示圖例、更改背景,我建議閱讀文檔。 對於日期,您可以旋轉標簽或使用fig.autofmt_xdate()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM