【问题标题】:Defining greyshade colormaps depending on number of elements根据元素数量定义灰度颜色图
【发布时间】:2021-05-02 11:57:28
【问题描述】:

我已经定义了以下数据框:

df=pd.DataFrame(DataMatrix_DCM,columns=['shape','dn','nis','Ds','Ibs','kVsfL','kHL','T_fund','Fa_max'])

并拥有plotvars=['nis','Ds','Ibs','kVsfL','kHL']

我正在使用 Seaborn relplot 来生成绘图。代码如下:

for vidx,vname in enumerate (plotvars):
g=sns.relplot(x="dn",y="Fa_max",col='shape',hue=vname,col_wrap=2,kind="scatter",palette=**###**,data=df,legend="full",edgecolor=None).set_titles("section shape: {col_name}")

交替显示为“hue”的每个参数都有不同数量的值。我想定义特定于图形的调色板,所有颜色都介于 (cplim1,cplim1,cplim1) 和 (cplim2,cplim2,cplim2) 之间,但调色板矢量中的元素数量不同(例如,不同数量的灰色阴影,但都在 (0,0,0) 和 (0.5,0.5,0.5)) 之间。

我正在寻找一种方法来根据“hue”变量中唯一值的数量自动定义这些调色板。也许使用 linspace?

【问题讨论】:

    标签: python colors seaborn color-palette


    【解决方案1】:

    我编写了这个函数,它成功地生成了一个定义灰度调色板的锯齿状数组:

    def greycolorpalette(df,vname):
        colidx=np.argwhere(df.columns.isin([vname])).ravel()
        colpal=np.linspace(0.8,0,num=len(np.unique(df.iloc[:,colidx])))
        colvec=[]
        for cidx,cval in enumerate (colpal):
            colvec.append(np.repeat(cval,3))
        return colvec 
    

    【讨论】:

      猜你喜欢
      • 2015-12-21
      • 1970-01-01
      • 2013-05-08
      • 2012-04-29
      • 2020-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-17
      相关资源
      最近更新 更多