如何在plotly和python中使用颜色刻度调色板?

3
我正在尝试改变使用plotly和cufflinks绘制的堆叠条形图的颜色(cufflinks库允许直接从数据框绘制图表,这非常有用)。
让我们看一下以下图表(我使用jupyter笔记本):
import plotly.plotly as py
import cufflinks as cf

cf.set_config_file(offline=True, world_readable=True, theme='white')

df = pd.DataFrame(np.random.rand(10, 4), columns=['A', 'B', 'C', 'D'])
df.iplot(kind='bar', barmode='stack')

如何使用上面的代码实现新的颜色调色板?我想使用“Viridis”颜色调色板。我没有找到修改图表颜色或使用颜色调色板自动着色不同堆栈的条形图的方法。你们中有谁知道如何做吗?
非常感谢你的帮助,
3个回答

5
trace0 = go.Scatter(
    x = foo,
    y = bar,
    name = 'baz',
    line = dict(
        color = ('rgb(6, 12, 24)'),
        width = 4)
)

这可以让你更改线条的颜色,或者你可以使用。
colors = `['rgb(67,67,67)', 'rgb(115,115,115)', 'rgb(49,130,189)', 'rgb(189,189,189)']`

用于绘制图形的不同线条。要使用指定的颜色渐变,请尝试:

data = [
    go.Scatter(
        y=[1, 1, 1, 1, 1],
        marker=dict(
            size=12,
            cmax=4,
            cmin=0,
            color=[0, 1, 2, 3, 4],
            colorbar=dict(
                title='Colorbar'
            ),
            colorscale='Viridis'
        ),
        mode='markers')
]

谢谢您的帮助,但我不明白如何从我的三行代码转换成您所说的内容。 - Peslier53
尝试使用颜色比例尺 'Viridis'。 - Little Yusuf
@Peslier53,我建议你查看这里的文档(https://plot.ly/python/bar-charts/)。你可以找到如何绘制基本条形图,如何指定“数据”,“跟踪”,“布局”。在理解了这些之后,你可以设置“颜色比例尺”,“标题”等等。 - Dmitriy Kisil

1
发现了解决我的问题的答案:
import plotly.plotly as py
import cufflinks as cf
from bokeh.palettes import viridis

cf.set_config_file(offline=True, world_readable=True, theme='white')
colors = viridis(4)
df = pd.DataFrame(np.random.rand(10, 4), columns=['A', 'B', 'C', 'D'])
fig = df.iplot(kind='bar', barmode='stack',asFigure = True)

for i,color in enumerate(colors):
    fig['data'][i]['marker'].update({'color': color})
    fig['data'][i]['marker']['line'].update({'color': color})

py.offline.iplot(fig)

1

在@Peslier53的答案基础上,您可以直接在df.iplot()中指定颜色或颜色范围:

import plotly.plotly as py
import cufflinks as cf
from bokeh.palettes import viridis

cf.set_config_file(offline=True, world_readable=True, theme='white')
colors = viridis(4)
df = pd.DataFrame(np.random.rand(10, 4), columns=['A', 'B', 'C', 'D'])
df.iplot(kind='bar', barmode='stack', colors = colors)


这样可以节省代码行数,并且使绘图非常方便。 它还适用于任何颜色列表(根据图形类型,热力图需要颜色渐变而不是颜色列表),因此您也可以使用自定义颜色。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接