colorlover列表的字符串列表

问题描述 投票:-1回答:1

我有一个100个字符串的列表,我想将它们转换为colorlover颜色列表,以便能够在plot.py中使用它们。我尝试了多个选项,但它总是为同一个字符串提供不同的颜色。该功能应该像:

hash(string) - > colorlover

有任何想法吗。 ?

这里的字符串列表:

XIC-FWHM-Q1
XIC-FWHM-Q2 
XIC-FWHM-Q3 
XIC-Height-Q2   
XIC-Height-Q3   
RT-Duration 
RT-TIC-Q1 

...

colorlover scale [RdYlBu]会很好。

ryb = cl.scales['3']['div']['RdYlBu']; ryb
['rgb(252,141,89)', 'rgb(255,255,191)', 'rgb(145,191,219)']

我想实现像这样的PCA分析https://plot.ly/ipython-notebooks/principal-component-analysis/但是我有100个列类别(字符串),我需要与颜色相关联。然后我不能像示例中那样手动添加颜色。

python matplotlib plotly pca
1个回答
0
投票

看起来colorlover实际上是一个python库。它执行字符串转换,您不需要为此创建单独的逻辑。

这是documentation的链接,这里是一个链接,显示用于生成色标的strings的示例。

UPDATE

如果你想定义自己的颜色,this可能是一个很好的起点。其他人可能有更多的经验。

更新2

如果您需要生成许多颜色,请查看link,它将引导您在Python和Plotly中为变量设置颜色标记。 Scatter Plots部分的色阶可能是一个很好的起点。

我设法使用以下代码生成一个大的rgb值列表:

import colorlover as cl
import pprint

pprint.pprint(cl.scales["3"])

这产生了以下列表,您可以从中选择要使用的rgb值:

{'div': {'BrBG': ['rgb(216,179,101)', 'rgb(245,245,245)', 'rgb(90,180,172)'],
         'PRGn': ['rgb(175,141,195)', 'rgb(247,247,247)', 'rgb(127,191,123)'],
         'PiYG': ['rgb(233,163,201)', 'rgb(247,247,247)', 'rgb(161,215,106)'],
         'PuOr': ['rgb(241,163,64)', 'rgb(247,247,247)', 'rgb(153,142,195)'],
         'RdBu': ['rgb(239,138,98)', 'rgb(247,247,247)', 'rgb(103,169,207)'],
         'RdGy': ['rgb(239,138,98)', 'rgb(255,255,255)', 'rgb(153,153,153)'],
         'RdYlBu': ['rgb(252,141,89)', 'rgb(255,255,191)', 'rgb(145,191,219)'],
         'RdYlGn': ['rgb(252,141,89)', 'rgb(255,255,191)', 'rgb(145,207,96)'],
         'Spectral': ['rgb(252,141,89)',
                      'rgb(255,255,191)',
                      'rgb(153,213,148)']},
 'qual': {'Accent': ['rgb(127,201,127)',
                     'rgb(190,174,212)',
                     'rgb(253,192,134)'],
          'Dark2': ['rgb(27,158,119)', 'rgb(217,95,2)', 'rgb(117,112,179)'],
          'Paired': ['rgb(166,206,227)', 'rgb(31,120,180)', 'rgb(178,223,138)'],
          'Pastel1': ['rgb(251,180,174)',
                      'rgb(179,205,227)',
                      'rgb(204,235,197)'],
          'Pastel2': ['rgb(179,226,205)',
                      'rgb(253,205,172)',
                      'rgb(203,213,232)'],
          'Set1': ['rgb(228,26,28)', 'rgb(55,126,184)', 'rgb(77,175,74)'],
          'Set2': ['rgb(102,194,165)', 'rgb(252,141,98)', 'rgb(141,160,203)'],
          'Set3': ['rgb(141,211,199)', 'rgb(255,255,179)', 'rgb(190,186,218)']},
 'seq': {'Blues': ['rgb(222,235,247)', 'rgb(158,202,225)', 'rgb(49,130,189)'],
         'BuGn': ['rgb(229,245,249)', 'rgb(153,216,201)', 'rgb(44,162,95)'],
         'BuPu': ['rgb(224,236,244)', 'rgb(158,188,218)', 'rgb(136,86,167)'],
         'GnBu': ['rgb(224,243,219)', 'rgb(168,221,181)', 'rgb(67,162,202)'],
         'Greens': ['rgb(229,245,224)', 'rgb(161,217,155)', 'rgb(49,163,84)'],
         'Greys': ['rgb(240,240,240)', 'rgb(189,189,189)', 'rgb(99,99,99)'],
         'OrRd': ['rgb(254,232,200)', 'rgb(253,187,132)', 'rgb(227,74,51)'],
         'Oranges': ['rgb(254,230,206)', 'rgb(253,174,107)', 'rgb(230,85,13)'],
         'PuBu': ['rgb(236,231,242)', 'rgb(166,189,219)', 'rgb(43,140,190)'],
         'PuBuGn': ['rgb(236,226,240)', 'rgb(166,189,219)', 'rgb(28,144,153)'],
         'PuRd': ['rgb(231,225,239)', 'rgb(201,148,199)', 'rgb(221,28,119)'],
         'Purples': ['rgb(239,237,245)',
                     'rgb(188,189,220)',
                     'rgb(117,107,177)'],
         'RdPu': ['rgb(253,224,221)', 'rgb(250,159,181)', 'rgb(197,27,138)'],
         'Reds': ['rgb(254,224,210)', 'rgb(252,146,114)', 'rgb(222,45,38)'],
         'YlGn': ['rgb(247,252,185)', 'rgb(173,221,142)', 'rgb(49,163,84)'],
         'YlGnBu': ['rgb(237,248,177)', 'rgb(127,205,187)', 'rgb(44,127,184)'],
         'YlOrBr': ['rgb(255,247,188)', 'rgb(254,196,79)', 'rgb(217,95,14)'],
         'YlOrRd': ['rgb(255,237,160)', 'rgb(254,178,76)', 'rgb(240,59,32)']}}

如果您只想在RdYlBu光谱中生成颜色,请使用以下代码:

print(cl.scales["11"]["div"]["RdYlBu"])

这给了:

    ['rgb(165,0,38)',
 'rgb(215,48,39)',
 'rgb(244,109,67)',
 'rgb(253,174,97)',
 'rgb(254,224,144)',
 'rgb(255,255,191)',
 'rgb(224,243,248)',
 'rgb(171,217,233)',
 'rgb(116,173,209)',
 'rgb(69,117,180)',
 'rgb(49,54,149)']

我发现的唯一问题是我可以使用的最高数字是11,并且得到了高于该值的任何值的错误消息。我猜这是RdYlBu的整个色谱。

祝你的项目好运。

© www.soinside.com 2019 - 2024. All rights reserved.