用于自动打印的功能。各种子图和各种图形

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于自动打印的功能。各种子图和各种图形相关的知识,希望对你有一定的参考价值。

我想创建一个函数来返回各种图形,每个图形中最多包含9个子图。也就是说,如果我想要18个子图,我想有两个人物,每个图有9个子图。如果我想拥有16个子图,则我希望在3x3网格中有一个包含9个子图的图形,而另一个只有7个子图的图形。首先一些玩具数据:

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

rs = np.random.RandomState(444)
dates = pd.date_range(start="2009-01-01", end='2019-12-31', freq='1D')
values = rs.randn(4017,6).cumsum(axis=0)
data = pd.DataFrame(abs(values), dates, columns =['a','b','c','d','e','f'])

现在是我正在使用的代码:

fig, axes = plt.subplots(3,3, figsize=(15,6))
for (year, mini_df), ax in zip(data.groupby(data.index.year), axes.flatten()):
    mini_df['b'].plot(linewidth=1.5, ax=ax, ylim=(0,100))
    ax.set_title(year)
    ax.xaxis.set_major_locator(mdates.MonthLocator(bymonth=[1,3,6,9,12]))
    ax.xaxis.set_major_formatter(mdates.DateFormatter('%b'))

让我得到这个:here

如您所见,仍然没有出现2018和2019。我可以添加另一行,但我真的很想看看大家如何解决这个问题。我不太想办法解决。预先感谢。

答案

非常直接的方法,但是有效。

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

rs = np.random.RandomState(444)
dates = pd.date_range(start="2009-01-01", end='2019-12-31', freq='1D')
values = rs.randn(4017,6).cumsum(axis=0)
data = pd.DataFrame(abs(values), dates, columns =['a','b','c','d','e','f'])
df_group = data.groupby(data.index.year)
count = 0
col = 0
row = 0
fig, axes = plt.subplots(3,3, figsize=(15,6))

for year, index in df_group.groups.items():
    ax = axes[row, col]
    ax.set_title(year)
    ax.xaxis.set_major_locator(mdates.MonthLocator(bymonth=[1,3,6,9,12]))
    ax.xaxis.set_major_formatter(mdates.DateFormatter('%b'))
    df_group.get_group(year).plot(linewidth=1.5, ax=ax, ylim=(0,100))        

    count += 1
    col += 1

    if count % 3 == 0:
        row += 1
        col = 0

    if count % 9 == 0:
        col = 0
        row = 0
        fig, axes = plt.subplots(3,3, figsize=(15,6))

以上是关于用于自动打印的功能。各种子图和各种图形的主要内容,如果未能解决你的问题,请参考以下文章

一款用于绘制状态机转换图和流程图的web在线绘图工具

数据流图和数据流程图的区别

R-基本图形-ch6

产品需求文档 – 用例文档(UML用例图流程图)

小程序各种功能代码片段整理---持续更新

argparse 代码片段只打印部分日志