【问题标题】:Error while adding error bars to subplots in seaborn向 seaborn 中的子图添加误差线时出错
【发布时间】:2020-03-13 00:27:53
【问题描述】:

我有以下示例代码,我想在一个图中使用 seaborn 将其绘制为条形子图。我可以将实际数据绘制为条形图,但是当我尝试添加误差线时,出现以下错误:

AttributeError: 'NoneType' object has no attribute 'seq'

代码是:

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

df1 = pd.DataFrame({
    'A': ['7.5'],
    'B': ['2.4']
})

df1_err = pd.DataFrame({
    'A': ['2.3'],
    'B': ['1.2']
})


df2 = pd.DataFrame({
    'A': ['5.5'],
    'B': ['4.2']
})

df2_err = pd.DataFrame({
    'A': ['1.7'],
    'B': ['2.1']
})

fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(6, 4), sharey=True)
my_pal = {"A": "green", "B":"orange"}
sns.set_style("whitegrid")
plt.tight_layout()


sns.barplot(data=df1, palette=my_pal, yerr = df1_err, linewidth=2,edgecolor=[".1","0.1"], ax=axes[0])
sns.barplot(data=df2, palette=my_pal, yerr = df2_err, linewidth=2,edgecolor=[".1","0.1"], ax=axes[1])
plt.show() 

如果我从sns.barplot() 命令中删除yerr,它会创建我想要的条形图,但我无法将预先计算的误差条添加到这些子图中。请问有什么帮助吗?

【问题讨论】:

    标签: pandas matplotlib seaborn python-3.5


    【解决方案1】:

    也许你的意思是这样的:

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    df1 = pd.DataFrame({
        'A': ['7.5'],
        'B': ['2.4']
    }).astype(float)
    
    df1_err = pd.DataFrame({
        'A': ['2.3'],
        'B': ['1.2']
    }).astype(float)
    
    fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(6, 4), sharey=True)
    
    axes[0].bar(df1.T.index.values, np.squeeze(df1.T.values), yerr=np.squeeze(df1_err.T.values))
    
    plt.show() 
    

    【讨论】:

      猜你喜欢
      • 2021-08-06
      • 2021-02-23
      • 1970-01-01
      • 2015-08-03
      • 1970-01-01
      • 1970-01-01
      • 2020-09-16
      相关资源
      最近更新 更多