Python errorbar caps的线条样式

Python errorbar caps的线条样式,python,matplotlib,Python,Matplotlib,我需要使用不同的errorbar caps线条样式(matplotlib/pyplot)。 代码: 我的意思是不使用水平线,而是使用>----(旋转90度以了解我的意思)或o---o等。因此,除了|----|之外的任何东西都不会相互隐藏: 您可以使用任何您喜欢的符号作为errorbar cap import matplotlib.pyplot as plt import numpy as np x=np.arange(4) y=np.log(np.array([4,2,5,7])) yerr =

我需要使用不同的errorbar caps线条样式(matplotlib/pyplot)。 代码:

我的意思是不使用水平线,而是使用>----(旋转90度以了解我的意思)或o---o等。因此,除了|----|之外的任何东西都不会相互隐藏:


您可以使用任何您喜欢的符号作为errorbar cap

import matplotlib.pyplot as plt
import numpy as np
x=np.arange(4)
y=np.log(np.array([4,2,5,7]))
yerr = [1,3,2,5]

l, caps, c = plt.errorbar(x,y,yerr, marker='s', capsize=4, markersize=12, 
                        mfc='blue', color='blue')
l2, caps2, c2 = plt.errorbar(x,y+4,yerr, marker='s', capsize=8, markersize=12, 
                        mfc='limegreen', color='limegreen')

for cap in caps:
    cap.set_marker("^")
for cap in caps2:
    cap.set_marker(ur"$\u266B$")

plt.show()

但是,正如您所注意到的,errorbar的两个标记都是相同的。例如,类似于

。。。产生这个的代码…@AnttiHaapala我刚刚用代码编辑了这篇文章。练习将示例设置为[]——我可以将其粘贴到文件中并立即运行。例如:虚拟数据、所有导入语句,以及显示所有问题案例所需的行数。感谢您的提示,@cphlewis。我刚刚编辑了代码,作为一个MCV示例。例如,请参阅我关于a的外观的回答-仅使用两个错误条和更少的数据。然而,我必须说,比起一个既不完整也不可验证的极小例子,一个不那么极小的完整且可验证的例子要好得多。。。这解决了。。。。谢谢我仍然需要更改每个垂直(Y点)的特定标记(几个unicode字符,没有填充,便于可视化),以区分它们。我留下的每一行都有不同的颜色,总共3种颜色。最后一个情节:即使如此,上界的最后一个蓝帽子,几乎被上界的最后一个红帽子遮住了…:(
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(4)
y=np.log(np.array([4,2,5,7]))
yerr = [1,3,2,5]

l, caps, c = plt.errorbar(x,y,yerr, marker='s', capsize=4, markersize=12, 
                        mfc='blue', color='blue')
l2, caps2, c2 = plt.errorbar(x,y+4,yerr, marker='s', capsize=8, markersize=12, 
                        mfc='limegreen', color='limegreen')

for cap in caps:
    cap.set_marker("^")
for cap in caps2:
    cap.set_marker(ur"$\u266B$")

plt.show()
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(4)
y=np.log(np.array([4,2,5,7]))
yerr = np.array([1,3,2,5])

plt.errorbar(x,y,yerr, marker='s', capsize=0, markersize=12, color='blue')
plt.plot(x,y+yerr, marker="v", ls="", color="blue", ms=8)
plt.plot(x,y-yerr, marker="^", ls="", color="blue", ms=8)

plt.errorbar(x,y+4,yerr, marker='o', capsize=0, markersize=12, color='limegreen')
plt.plot(x,y+4+yerr, marker="v", ls="", color='limegreen', ms=8)
plt.plot(x,y+4-yerr, marker="^", ls="", color='limegreen', ms=8)

plt.show()