我想修改我的绘图代码,以显示下图所示的最小/最大条形图:
我的代码是:
from datetime import datetime, timedelta
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style("white")
sns.set_style('darkgrid',{"axes.facecolor": ".92"}) # (1)
sns.set_context('notebook')
Delay = ['S1', 'S2', 'S3', 'S4']
Time = [87, 66, 90, 55]
df = pd.DataFrame({'Delay':Delay,'Time':Time})
print("Accuracy")
display(df) # in jupyter
fig, ax = plt.subplots(figsize = (8,6))
x = Delay
y = Time
plt.xlabel("Delay", size=14)
plt.ylim(-0.3, 100)
width = 0.1
for i, j in zip(x,y):
ax.bar(i,j, edgecolor = "black",
error_kw=dict(lw=1, capsize=1, capthick=1))
ax.set(ylabel = 'Accuracy')
from matplotlib import ticker
ax.yaxis.set_major_locator(ticker.MultipleLocator(10))
plt.savefig("Try.png", dpi=300, bbox_inches='tight')
代码生成此图:
我要添加的最小/最大值用于:
87 (60-90)
66 (40-70)
90 (80-93)
55 (23-60)
提前谢谢你的帮助
seaborn.barplot
和ax.bar
的示例,扩展了前面question中的代码李>^{}
seaborn.barplot
将自动添加错误条,如链接中的示例所示。但是,这是特定于使用许多数据点的。在这种情况下,指定一个值作为错误,而不是根据数据确定错误。capsize
参数,以便在错误条的顶部和底部添加水平线李>yerr
参数可用于显式地向API提供错误。yerr
期望值与条的顶部相关S1
为87,其中{ymin
是27,(87-60),而ymax
是3,(90-87)李>seaborn.barplot
capsize
参数似乎不适用于yerr
,因此必须设置matplotlib
{^{}
ax.bar
您可以直接使用
plt.bar
的yerr
arg。以@Trenton McKinney的代码为例:这里有一个使用
yerr
和numpy
的解决方案。它的样板代码比@gepcel的少相关问题 更多 >
编程相关推荐