gpt4 book ai didi

python - Matplotlib - 隐藏错误栏的标签和图例中的点

转载 作者:太空宇宙 更新时间:2023-11-03 14:27:54 24 4
gpt4 key购买 nike

这是我的意思的一个例子:

import matplotlib.pyplot as plt

xdata = [5, 10, 15, 20, 25, 30, 35, 40]
ydata = [1, 3, 5, 7, 9, 11, 13, 15]
yerr_dat = 0.5

plt.figure()

plt.plot(xdata, ydata, 'go--', label='Data', zorder=1)

plt.errorbar(xdata, ydata, yerr = yerr_dat, zorder=2, fmt='ko')

plt.legend()

plt.show()

这将绘制这个:

enter image description here

我不想要图例中的错误点和None标签,我怎样才能把它们去掉?

我使用的是版本为 1.0.1.1190 的 Canopy


编辑

在用这段代码尝试了 Joe 的解决方案之后:

import matplotlib.pyplot as plt

xdata = [5, 10, 15, 20, 25, 30, 35, 40]
ydata = [1, 3, 5, 7, 9, 11, 13, 15]
yerr_dat = 0.5
value = 20

plt.figure()

scatt = plt.plot(xdata, ydata, 'go--', label='Data', zorder=1)
hline = plt.hlines(y=5, xmin=0, xmax=40)
vline = plt.vlines(x=20, ymin=0, ymax=15)

plt.errorbar(xdata, ydata, yerr = yerr_dat, zorder=2, fmt='ko')

plt.legend([scatt, vline, hline], ['Data', 'Horiz line', 'Verti line = %d' % value], fontsize=12)

plt.show()

我收到这个警告:

/home/gabriel/Canopy/appdata/canopy-1.0.0.1160.rh5-x86/lib/python2.7/site-packages/matplotlib/legend.py:628: UserWarning: Legend does not support [<matplotlib.lines.Line2D object at 0xa09a28c>]
Use proxy artist instead.

http://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-artist

(str(orig_handle),))

和这个输出:

plot2

第一个标签由于某种原因没有显示。想法?


编辑2

原来我在这一行中漏掉了一个逗号:

scatt, = plt.plot(xdata, ydata, 'go--', label='Data', zorder=1)

添加它之后,一切都很顺利。谢谢乔!

最佳答案

在较新版本的 matplotlib 上,您需要的是默认行为。只有具有明确指定标签的艺术家才会出现在图例中。

但是,控制图例中显示的内容很容易。只传递您想要标记的艺术家:

import matplotlib.pyplot as plt

xdata = [5, 10, 15, 20, 25, 30, 35, 40]
ydata = [1, 3, 5, 7, 9, 11, 13, 15]
yerr_dat = 0.5

plt.figure()

dens = plt.plot(xdata, ydata, 'go--', zorder=1)

plt.errorbar(xdata, ydata, yerr = yerr_dat, zorder=2, fmt='ko')

plt.legend(dens, ['Density Profile'])

plt.show()

enter image description here

或者,您可以为 errorbar 绘图指定 label='_nolegend_',但我不知道哪些版本的 matplotlib 支持它,并传入显式列表艺术家和标签适用于任何版本。

如果您想添加其他艺术家:

import matplotlib.pyplot as plt

xdata = [5, 10, 15, 20, 25, 30, 35, 40]
ydata = [1, 3, 5, 7, 9, 11, 13, 15]
yerr_dat = 0.5

plt.figure()

# Note the comma! We're unpacking the tuple that `plot` returns...
dens, = plt.plot(xdata, ydata, 'go--', zorder=1)
hline = plt.axhline(5)

plt.errorbar(xdata, ydata, yerr = yerr_dat, zorder=2, fmt='ko')

plt.legend([dens, hline], ['Density Profile', 'Ceiling'], loc='upper left')

plt.show()

enter image description here

关于python - Matplotlib - 隐藏错误栏的标签和图例中的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16989437/

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