Как использовать цветовую палитру с plotly и python? - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь изменить цвета гистограммы стека, которую я рисую в python с использованием графиков и запонок (библиотека запонок позволяет рисовать диаграммы напрямую, формируя информационный фрейм, что очень полезно).

Давайте возьмем следующий рисунок (я использую блокнот 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')

Как реализовать новую цветовую палитру, используя приведенный выше код?Я хотел бы использовать цветовую палитру «Виридис».Я не нашел способа изменить цвета графика или использовать цветовую палитру, чтобы автоматически по-разному окрашивать другой стек гистограммы.Кто-нибудь из вас знает, как это сделать?

Большое спасибо за вашу помощь,

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Нашел ответ на мою проблему:

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)
0 голосов
/ 30 сентября 2018
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')
]
...