Python 显示为相同颜色的颜色贴图线。

Python 显示为相同颜色的颜色贴图线。,python,pandas,matplotlib,plot,colormap,Python,Pandas,Matplotlib,Plot,Colormap,我扩展了这个问题,想弄明白如何使每一条线都有不同的红色或黑色阴影。这可能需要制作一个自定义颜色映射,或者以某种方式调整颜色映射RdGy 使用上一个问题中的数据和数据包,这是我目前掌握的: df0.groupby([df0.ROI.str.split('_').str[0],'Band']).Mean.plot.kde(colormap='RdGy') plt.legend() plt.show() 图中是这样的: 但我希望“bcs”线是黑色的阴影,“红色”线是红色的阴影。这怎么可能 自定义图例

我扩展了这个问题,想弄明白如何使每一条线都有不同的红色或黑色阴影。这可能需要制作一个自定义颜色映射,或者以某种方式调整颜色映射RdGy

使用上一个问题中的数据和数据包,这是我目前掌握的:

df0.groupby([df0.ROI.str.split('_').str[0],'Band']).Mean.plot.kde(colormap='RdGy')
plt.legend()
plt.show()
图中是这样的:

但我希望“bcs”线是黑色的阴影,“红色”线是红色的阴影。这怎么可能


自定义图例中线条的名称也很好,例如BCS波段1等。。但也不知道该怎么做

原则上@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()
当然,您也可以使用字符串列表作为图例条目。通过将它们提供给plotting函数的label参数

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])

通过使用图例的labels参数


是否有一种方法可以在图例中手动输入名称,而不是红色带0等,但可以用我想要使用的字符串定义向量@重要的,重要的
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)