gpt4 book ai didi

python - matplotlib:更改干图图例颜色

转载 作者:太空宇宙 更新时间:2023-11-04 01:26:07 27 4
gpt4 key购买 nike

使用 matplotlib,我正在创建主干图,设置主干图颜色,并创建主干图的图例,如下所示:

import pyplot as plt
...

plots, legend_names = [], []

for x_var in x_vars:
plots.append(plt.stem(plt.stem(dataframe[y_var], dataframe[x_var])))

markerline, stemlines, baseline = plots[x_var_index]
plt.setp(stemlines, linewidth=2, color=numpy_rand(3,1)) # set stems to random colors
plt.setp(markerline, 'markerfacecolor', 'b') # make points blue

legend_names.append(x_var)
...

plt.legend([plot[0] for plot in plots], legend_names, loc='best')

结果是这样的:

enter image description here

我猜图例中的第一个点应该对应于点的颜色(如图所示),而第二个点应该对应于主干/线的颜色。然而,茎和点的颜色最终都对应于图中点的颜色。有没有办法来解决这个问题?谢谢。

最佳答案

图例默认显示两个标记。您可以使用参数 numpoints = 1 更改它。您的图例命令使用标记,而不是使用 plot[0] 作为输入的行。不幸的是,这些词干不支持图例的艺术家,因此您需要使用代理艺术家。这是一个例子:

import pylab as plt
from numpy import random

plots, legend_names = [], []

x1 = [10,20,30]
y1 = [10,20,30]
# some fake data
x2 = [15, 25, 35]
y2 = [15, 25, 35]
x_vars = [x1, x2]
y_vars = [y1, y2]
legend_names = ['a','b']

# create figure
plt.figure()
plt.hold(True)

plots = []
proxies = []


for x_var, y_var in zip(x_vars, y_vars):
markerline, stemlines, baseline = plt.stem(x_var, y_var)
plots.append((markerline, stemlines, baseline))

c = color = random.rand(3,1)

plt.setp(stemlines, linewidth=2, color=c) # set stems to random colors
plt.setp(markerline, 'markerfacecolor', 'b') # make points blue

#plot proxy artist
h, = plt.plot(1,1,color=c)
proxies.append(h)
# hide proxies
plt.legend(proxies, legend_names, loc='best', numpoints=1)
for h in proxies:
h.set_visible(False)
plt.show()

enter image description here

关于python - matplotlib:更改干图图例颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17791569/

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