同一图表上的两个不同颜色的小提琴图

时间:2017-02-15 18:34:19

标签: plotly violin-plot

我使用以下命令创建小提琴情节:

    fig = FF.create_violin(data, data_header='Number', group_header='Group', height=500, width=800, title= "Number of Videos Watched",colors='YlOrRd')
    py.iplot(fig, filename= "Number of Videos Watched")

我想使用我选择的两种颜色。我似乎无法弄清楚如何做到这一点。谁能告诉我怎么做? 感谢!!!

1 个答案:

答案 0 :(得分:0)

这有点棘手,但example给出了一个很好的起点。这两个图的数据存储在Pandas dataframe中。

首先让我们创建一个随机值列表

y = numpy.random.randn(Nr)

并从这些数字中随机选择

gr = numpy.random.choice(list(violins), Nr)

然后修改数字,每个选择都不同。

for i, letter in enumerate(violins):
    y[gr == letter] *= norm_params[i][1] + norm_params[i][0]

并分配给DataFrame

df = pd.DataFrame(dict(Score = y, Group = gr))

最后绘制了DataFrame

fig = plotly.tools.FigureFactory.create_violin(df, data_header='Score', group_header='Group', colors='YlOrRd')

如果您使用自己的值替换数据,例如values1values2

#get the groups
gr = ['Value1' for i in range(Nr)]
gr.extend(['Value2' for i in range(Nr)])

#assign the values
y = numpy.random.randn(2*Nr)
y[0:Nr] = values1
y[Nr:] = values2

你可以得到自己的小提琴情节。

这是一个创建两个小提琴情节的最小例子。

enter image description here

import plotly
import numpy
import pandas as pd
plotly.offline.init_notebook_mode()
Nr = 250
violins = 'AB'
y = numpy.random.randn(Nr)
gr = numpy.random.choice(list(violins), Nr)
norm_params = [(0, 1.2), (0.7, 1)]

for i, letter in enumerate(violins):
    y[gr == letter] *= norm_params[i][1] + norm_params[i][0]
df = pd.DataFrame(dict(Score = y, Group = gr))

data_header = 'Score'
group_header = 'Group'

fig = plotly.tools.FigureFactory.create_violin(df, data_header='Score', group_header='Group', colors='YlOrRd')

plotly.offline.iplot(fig, filename='Two Violin Plots')