Python 如何在plotly中获取所有色阶的名称?

Python 如何在plotly中获取所有色阶的名称?,python,r,plotly,Python,R,Plotly,我想知道如何在列表中绘出所有可用色阶的名称 通缉: import plotly import plotly.offline as py import plotly.graph_objs as go import plotly.figure_factory as ff import plotly.tools as tls from plotly.offline import plot, iplot, init_notebook_mode init_notebook_mode(connected=

我想知道如何在列表中绘出所有可用色阶的名称

通缉:


import plotly
import plotly.offline as py
import plotly.graph_objs as go
import plotly.figure_factory as ff
import plotly.tools as tls
from plotly.offline import plot, iplot, init_notebook_mode
init_notebook_mode(connected=False)

colorscales = plotly.something.something

import plotly.graph_objs as go
x = ['Albania', 'Denmark', 'France', 'Finland', 'USSR']
y = [4, 2, 3, 5, 9]
fig = go.FigureWidget(data=[go.Bar(x=x, y=y,
                                 marker={'color': y,
                                               'colorscale': 'Viridis'})]) 
fig

在这里,我想用colorscales[0]替换“Viridis”,并选择它提供的任何颜色贴图。

更新:现在有一个专门的文档页面,包括位于


包含您要查找的大部分内容

因此,可能从plotly执行
。\u plotly\u utils.colors import plotly\u SCALES
将允许您执行
colorscales=plotly\u SCALES.keys()
,尽管这是一个内部对象


我应该补充一点,Plotly可以通过名称识别其他颜色比例,但这些颜色比例不能像这样作为一个整洁的导入,因为它们在其他模块中,如
Plotly.express.colors.sequential
Plotly.express.colors.cyclical
等。我不知道如何在一个列表中获取所有名称,但我知道我需要什么通常要做的是在
colorscale
名称中键入一个错误,例如
Viridis1
而不是
Viridis
,然后查看错误消息并复制可用的色标列表


这不是最好的方法,但它很有效。

您可以在迭代已知颜色模块的同时,使用
inspect
模块获得所有单个颜色刻度名称:

import inspect

colorscale_names = []
colors_modules = ['carto', 'colorbrewer', 'cmocean', 'cyclical',
                    'diverging', 'plotlyjs', 'qualitative', 'sequential']
for color_module in colors_modules:
    colorscale_names.extend([name for name, body
                            in inspect.getmembers(getattr(px.colors, color_module))
                            if isinstance(body, list)])
所有名称现在都可以在列表
colorscale\u name
中找到(包括
PLOTLY\u SCALES
中的名称,因为它们在颜色模块中复制)。有一些重复项,可以通过将其强制转换为一组来删除

下面是列印的所有名字

from textwrap import fill

print(fill(''.join(sorted({f'{x: <{15}}' for x in colorscale_names})), 75))

以下是plotly中的所有颜色比例

['aggrnyl', 'agsunset', 'algae', 'amp', 'armyrose', 'balance',
'blackbody', 'bluered', 'blues', 'blugrn', 'bluyl', 'brbg',
'brwnyl', 'bugn', 'bupu', 'burg', 'burgyl', 'cividis', 'curl',
'darkmint', 'deep', 'delta', 'dense', 'earth', 'edge', 'electric',
'emrld', 'fall', 'geyser', 'gnbu', 'gray', 'greens', 'greys',
'haline', 'hot', 'hsv', 'ice', 'icefire', 'inferno', 'jet',
'magenta', 'magma', 'matter', 'mint', 'mrybm', 'mygbm', 'oranges',
'orrd', 'oryel', 'peach', 'phase', 'picnic', 'pinkyl', 'piyg',
'plasma', 'plotly3', 'portland', 'prgn', 'pubu', 'pubugn', 'puor',
'purd', 'purp', 'purples', 'purpor', 'rainbow', 'rdbu', 'rdgy',
'rdpu', 'rdylbu', 'rdylgn', 'redor', 'reds', 'solar', 'spectral',
'speed', 'sunset', 'sunsetdark', 'teal', 'tealgrn', 'tealrose',
'tempo', 'temps', 'thermal', 'tropic', 'turbid', 'twilight',
'viridis', 'ylgn', 'ylgnbu', 'ylorbr', 'ylorrd']

你看过这个讨论了吗@DavidKlotz是的,我做了。请注意,plotly内置的colorscales文档页面只列出了Express和Dash的colorscales,但没有列出“go”API可用的巨像:-(例如,在Plotly Express“px”中存在色标“turbo”,但它在Plotly的“go”版本中没有定义。这实际上是不正确的:Express和Graph对象共享同一组色标。turbo对两者都适用(尽管它是最近才推出的,所以请确保升级到最新版本!)“只是最近才推出”一定是在过去的几天里。我刚刚收到错误消息说turbo没有被定义为go plotly的一部分,我在三天前安装了plotly。在2020年11月11日的4.13中添加:…这段代码在4.14.3中为我运行:
go.Figure(go.Scatter(mode=“markers”,y=[1,2,3,4],marker\u color=[1,2,3,4],marker\u colorscale=“turbo”))