gpt4 book ai didi

python - 子图的标题在 kind ='bar' 时显示,但在 kind ='line' 时不显示

转载 作者:太空宇宙 更新时间:2023-11-04 02:54:41 26 4
gpt4 key购买 nike

当我创建这样的子图时:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import itertools

df = pd.DataFrame(np.random.randn(20, 10), columns=list('ABCDEFGHIJ'))

ax = df.plot(kind='bar', subplots=True, layout=(4, 3), sharex=True, sharey=False)

我得到这样的图,其中列标题用作子图的标题:

enter image description here

当我将 kind='bar' 更改为 kind='line' 时,只有图例而没有绘制标题。

解决方法是像这样使用 .get_legend_handles_labels():

for axi in itertools.chain.from_iterable(ax):
try:
axi.set_title(axi.get_legend_handles_labels()[1][0], {'size': 16})
except:
pass

然后给出正确的输出:

enter image description here

是否有更直接的方法来实现这一点?为什么 plot 根据标志 kind 表现不同?

最佳答案

解决方法:

  1. 获取当前 development version of plotting.py .这允许为 plottitles 参数提供列表。
  2. 使用

    ax = df.plot(kind="line",subplots=True, layout=(4, 3), 
    sharex=True, sharey=False, title=list(df.columns.values))

    获取子图标题。

当然,您也可以直接尝试更改代码以包含轴标题的设置。条形图的代码在当前开发版本的第 2006 行左右;您需要将它放在 LinePlot 的 _make_plot() 方法中,该方法位于 1757 行附近的某处,其中一个简单的 ax.set_title(label) 就足够了。那么问题可能是 pandas 会要求你重新构建它。 (我还没有测试过)。

关于python - 子图的标题在 kind ='bar' 时显示,但在 kind ='line' 时不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42812105/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com