发布
社区首页 >问答首页 >用于循环Python的Matplotlib子图

用于循环Python的Matplotlib子图
EN

Stack Overflow用户
提问于 2022-02-18 08:18:20
回答 1查看 135关注 0票数 1

尝试创建多个图表并将其保存为一个图像。我成功地组合了多个图表,但是有几件事情出了问题。由于某些原因,不能仅为最后一个图表设置所有图表的点滴。此外,数字并没有像上一张图表那样完整地显示。还想改变颜色的线条(白色),标签(白色),背景(黑色),并旋转一个日期,这样它将很容易阅读。

代码语言:javascript
代码运行次数:0
复制
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()
EN

回答 1

Stack Overflow用户

发布于 2022-02-18 08:51:33

您的图形由不同的轴对象组成。要设置每个绘图的标题,您需要使用相应的axes对象,该对象提供了更改外观所需的相关方法。例如,见:

代码语言:javascript
代码运行次数:0
复制
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()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71170297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档