gpt4 book ai didi

python - 在python中绘制具有相同标签和颜色的序列

转载 作者:行者123 更新时间:2023-12-02 00:33:29 25 4
gpt4 key购买 nike

我有一组要绘制的序列。所有这些都应该绘制在同一张图表上,但其中一些应该具有相同的标签和颜色。

使用下面的代码,每个序列都会有自己的标签和颜色。

plt.clf()
for j in range(k)
plt.plot(lower_graphs[j, :], label=str(alphas_vis[i]))
plt.plot(upper_graphs[j, :], label=str(alphas_vis[i]))
plt.lengend()
plt.show()

最佳答案

好的,现在我明白了。所以你想让 matplotlib 自动为你的图着色,但具有相同标签的线应该共享颜色和图例条目。您可以做的是在创建绘图后遍历所有线条和标签。并且每个已经存在的标签都获得相同的颜色,而它的图例条目被前面的下划线抑制。 (自动图例中不显示开头带有“_”的标签):

names = ['a', 'b', 'c', 'a', 'c', 'd']    # sample labels
fig = plt.figure() # save your figure in a variable for later access
for i in range(5):
plt.plot([0,1], [i,i], label=names[i])

plt.legend() # still wrong legend for comparison purpose

ax = fig.gca() # get the current axis

for i, p in enumerate(ax.get_lines()): # this is the loop to change Labels and colors
if p.get_label() in names[:i]: # check for Name already exists
idx = names.index(p.get_label()) # find ist index
p.set_c(ax.get_lines()[idx].get_c()) # set color
p.set_label('_' + p.get_label()) # hide label in auto-legend
plt.legend(loc='center') # correct legend

循环前:

enter image description here

循环后:

enter image description here

关于python - 在python中绘制具有相同标签和颜色的序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50791422/

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