python - 绘制长度不均匀的分布

标签 python plotly

正在关注 the plotly directions ,我想绘制类似于以下代码的内容:

import plotly.plotly as py
import plotly.figure_factory as ff

import numpy as np

# Add histogram data
x1 = np.random.randn(200) - 2  
x2 = np.random.randn(200)  
x3 = np.random.randn(200) + 2  
x4 = np.random.randn(200) + 4  


# Group data together
hist_data = [x1, x2, x3, x4]

group_labels = ['Group 1', 'Group 2', 'Group 3', 'Group 4']

# Create distplot with custom bin_size
fig = ff.create_distplot(hist_data, group_labels, bin_size = [.1, .25, .5, 1])

# Plot!
py.iplot(fig, filename = 'Distplot with Multiple Bin Sizes')

但是,我有一个样本量不均匀的真实世界数据集(即第 1 组的计数与第 2 组的计数不同,等等)。此外,它采用名称-值对格式。

这里有一些虚拟数据来说明:

# Add histogram data
x1 = pd.DataFrame(np.random.randn(100))
x1['name'] = 'x1'

x2 = pd.DataFrame(np.random.randn(200) + 1)
x2['name'] = 'x2'

x3 = pd.DataFrame(np.random.randn(300) - 1)
x3['name'] = 'x3'

df = pd.concat([x1, x2, x3])
df = df.reset_index(drop = True)
df.columns = ['value', 'names'] 

df

如您所见,每个名称 (x1、x2、x3) 都有不同的计数,而且“名称”列也是我想用作颜色的。

有谁知道我该如何巧妙地绘制它?

仅供引用,在 R 中,它非常简单,我只需调用 ggplot,然后在 aes(fill = names) 中调用。

如有任何帮助,我们将不胜感激,谢谢!

最佳答案

您可以尝试对您的数据框进行切片,然后将其放入 Plotly 中。

fig = ff.create_distplot([df[df.names == a].value for a in df.names.unique()], df.names.unique(), bin_size=[.1, .25, .5, 1])

enter image description here

import plotly
import pandas as pd
plotly.offline.init_notebook_mode()
x1 = pd.DataFrame(np.random.randn(100))
x1['name']='x1'

x2 = pd.DataFrame(np.random.randn(200)+1)
x2['name']='x2'

x3 = pd.DataFrame(np.random.randn(300)-1)
x3['name']='x3'

df=pd.concat([x1,x2,x3])
df=df.reset_index(drop=True)
df.columns = ['value','names'] 
fig = ff.create_distplot([df[df.names == a].value for a in df.names.unique()], df.names.unique(), bin_size=[.1, .25, .5, 1])
plotly.offline.iplot(fig, filename='Distplot with Multiple Bin Sizes')

关于python - 绘制长度不均匀的分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46062117/

相关文章:

Python rpy2 和 quantmod 示例

python - Plotly 文本中的新行

r - Plotly R 中的分组线图 : how to control line color?

javascript - 将绘图中的数据保存到 csv 或 excel 文件中

r - 更改 Plotly Animation 中的 'Frame' 标签

r - 如何使用十六进制字符串在 plotly for r 中更改饼图中切片的颜色?

python - 执行 PySpark 代码时遇到 Py4JJavaError

python - 帮助在重新加载或子进程之间进行选择

python - 为什么python在函数内部重用类实例

python - 导入错误 : No module named '' when importing my own sub-package