如何更改Matplotlib中错误条上限的线宽?
我尝试了以下代码:
(_, caplines, _) = matplotlib.pyplot.errorbar(
data['distance'], data['energy'], yerr=data['energy sigma'],
capsize=10, elinewidth=3)
for capline in caplines:
capline.set_linewidth(10)
capline.set_color('red')
pp.draw()
Run Code Online (Sandbox Code Playgroud)
不幸的是,这将更新瓶盖的颜色,但并没有更新线宽盖的!
结果效果类似于下图中的"胖错误条线/薄帽":

在这种情况下,有"胖"酒吧帽是很好的; 怎么能在Matplotlib中完成?逐个"手动"绘制条形帽plot()可以工作,但更简单的替代方案是最好的.
我试图在我的建模数据之上用错误条过度绘制一些经验数据.错误条似乎首先呈现,因此重写(见下文)
我尝试过使用zorder,但我仍然得到相同的结果.我正在使用的代码是
for i in range(1,len(pf)):
pf[i,:] = av_pf_scale * pf[i,:]
pylab.semilogy(pf[0,0:180],pf[i,0:180],color='0.75')
pylab.semilogy(av_pf[0:180],color='r')
pylab.semilogy(av_mie[0:180],color='g', linestyle='-')
pylab.draw()
f = pylab.errorbar(ang,data[j],
yerr = delta_data[j],
fmt = 'o',
markersize = 3,
color = 'b',
zorder = 300,
antialiased = True)
Run Code Online (Sandbox Code Playgroud)
如果有人能告诉我如何使错误栏呈现在顶部,我将不胜感激.

我试图用python和seaborn绘制错误栏,但我对它们的外观并不完全满意.
默认的seaborn错误栏如下所示:
但我想在这样的误差条上添加底线和顶线(为了区分两个误差线,它是默认的matplotlib样式):
我怎么能在seaborn中这样做?
这是代码:
import matplotlib.pyplot as plt
import seaborn as sns
fig1 = plt.figure(figsize=(20, 12))
x_values = [1,2,3,4]
y_values = [1,2,3,4]
y_error = [1,0.5,0.75,0.25]
plt.errorbar(x_values, y_values, yerr=y_error ,fmt='o', markersize=8)
plt.show()
Run Code Online (Sandbox Code Playgroud) 我正在尝试对误差条图的标记进行着色,而不对误差条线进行着色。
这是一个 MWE:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [1, 2, 3, 4]
dx = 0.1
dy = 0.1
plt.errorbar(x, y, xerr = dx, yerr = dy, marker = '.',
linestyle = ' ', color = 'black', capsize = 2,
elinewidth = 0.5, capthick = 0.4, alpha = 0.8)
plt.savefig('MWE.pdf')
plt.show()
Run Code Online (Sandbox Code Playgroud)
另外,如何在不改变倾覆的情况下摆脱标记边缘?如果我把markeredgewidth = 0在capsize被复位。
更新代码:
import matplotlib.pyplot as plt
import matplotlib
x = [1, 2, 3, 4]
y = …Run Code Online (Sandbox Code Playgroud) 我想调整我的绘图代码以显示最小/最大条形,如下图所示:
我的代码是:
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)) …Run Code Online (Sandbox Code Playgroud)