原则@Robbies对链接问题的答案为您提供了创建所需颜色和标签线所需的所有工具。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame()
nam = ["red", "bcs"]
for i in range(8):
df['{}_{}'.format(nam[i//4],i%4)] = np.random.normal(i, i%4+1, 100)
nam = {"red":plt.cm.Reds, "bcs": plt.cm.gray_r}
fig, ax = plt.subplots()
for i, s in enumerate(df.columns):
df[s].plot(kind='density', color=nam[s.split("_")[0]]((i%4+1)/4.),
label=" Band ".join(s.split("_")))
plt.legend()
plt.show()
当然,你也可以只使用字符串像传说中的条目列表。或者把它们提供给绘图功能的标签说法,
labels = "This is a legend with some custom entries".split()
for i, s in enumerate(df.columns):
df[s].plot(kind='density', color=nam[s.split("_")[0]]((i%4+1)/4.),
label=labels[i])
或
使用legend
的labels
说法,
labels = "This is a legend with some custom entries".split()
for i, s in enumerate(df.columns):
df[s].plot(kind='density', color=nam[s.split("_")[0]]((i%4+1)/4.))
plt.legend(labels=labels)
有没有一种办法只需在图例中手动输入名称而不是“红色波段0”等,但要使用我想要使用的字符串定义矢量? @ImportanceOfBeingErnest – JAG2024
是的,我更新了答案。 – ImportanceOfBeingErnest