如何将 python matplotlib.pyplot 图例标记更改为 1、2、3 之类的序列号,而不是形状或字符?
Posted
技术标签:
【中文标题】如何将 python matplotlib.pyplot 图例标记更改为 1、2、3 之类的序列号,而不是形状或字符?【英文标题】:How can I change the python matplotlib.pyplot legend marker into a serial number like 1,2,3 instead of shape or character? 【发布时间】:2021-11-24 08:23:30 【问题描述】:import matplotlib.pyplot
plt.figure()
plt.plot(x, 'r+', label='one')
plt.plot(x1, 'go--', label ='two')
plt.plot(y, 'ro', label='Three')
plt.legend()
在上面的代码中,图例标记是 'r+' , 'go--' 和 'ro' 但我希望它变成 1,2 和 3,因为有 3 个图。?谁能帮我解决这个问题?还有什么方法可以在不对数字进行硬编码的情况下完成吗? """ 谢谢。
【问题讨论】:
【参考方案1】:您可以使用生成器(例如,itertools.count
)和next
:
import matplotlib.pyplot
x=x1=y=(0,0) # dummy data
markers = iter(['r+', 'go--', 'ro'])
plt.figure()
plt.plot(x, next(markers), label='1')
plt.plot(x1, next(markers), label='2')
plt.plot(y, next(markers), label='3')
plt.legend()
输出:
【讨论】:
实际上我正在尝试更改图例的标记,即红色加号,绿色加号和红点。不是传说中的标签。 @daspran 哎呀抱歉,但你想如何迭代这些值?随机的?手动定制订单? 按照绘图顺序。假设我用 3 个不同的变量绘制一个条形字符,那么第一个标记将是第一个条形。第二个标记将是第二个酒吧,依此类推。而不是条的颜色,我希望它按绘制的顺序编号。我该怎么做?请有任何建议 对不起,我不清楚,标记不是数字,你能提供一个示意图吗? 是的,因为标记不是数字,我可以将它们更改为数字吗? Like > 1 RED CROSS 2. GREEN LINE 3 RED DOT以上是关于如何将 python matplotlib.pyplot 图例标记更改为 1、2、3 之类的序列号,而不是形状或字符?的主要内容,如果未能解决你的问题,请参考以下文章
python中,如何将字符串中的多个不等量空格改为改为逗号分隔?
如何将 Python 列表转换为 Python Dataframe?