绘图表达px.scatter,分类变量不重叠

问题描述 投票:0回答:1

我正在尝试比较两个数据库返回的相同项目的分类分配。我想在分类轴上绘制每个数据库,然后使用

px.scatter
可视化它们之间的交集。

我遇到的问题是

px.scatter
似乎没有允许抖动数据点的选项,因此它们并不全部相互重叠。我找到了一个选项
scattermode=group
scattergroup=[0,1]
,但它对我来说没有任何作用。

我能够从 JMP 中获得我想要的东西。我怎样才能在plotlyexpress中复制这个?

MWE

import pandas as pd
import plotly.express as px

d = {'Document_Type_x': ['Research Article', 'Research Article', 'Letter to the Editor', 'Letter to the Editor', 'Letter to the Editor'],
     'Document_Type_y': ['Article', 'Article', 'Letter', 'Letter', 'Letter']}
df = pd.DataFrame(data=d)

fig = px.scatter(df, x='Document_Type_x', y='Document_Type_y')

fig.update_layout(scattermode='group', scattergap=.9)
fig.update_xaxes(categoryorder = 'category ascending')
fig.update_yaxes(categoryorder = 'category ascending')

fig.show()

使用 px.scatter,错误地堆叠所有数据点 px.scatter, incorrectly stacking all data points

使用JMP,正确显示每个交叉点有多少个点 using JMP, correctly showing how many points at each intersection

python plotly plotly-python
1个回答
0
投票

我之前从未使用过这个功能,所以我再次查看了参考资料。在这个示例中,可以使用颜色类别,因此我有意添加该类别。并再次修改由于添加颜色类别而导致的图例、标记颜色和悬停模板。这是一种黑客方法,但我认为它会让你得到你想要的东西。

import pandas as pd
import plotly.express as px

d = {'Document_Type_x': ['Research Article', 'Research Article', 'Letter to the Editor', 'Letter to the Editor', 'Letter to the Editor'],
     'Document_Type_y': ['Article', 'Article', 'Letter', 'Letter', 'Letter']}
df = pd.DataFrame(data=d)
df['type'] = ['A','B','A','B','C'] #update

fig = px.scatter(df, x='Document_Type_x', y='Document_Type_y', color='type')

fig.update_traces(showlegend=False, marker=dict(color='blue')) #update
fig.update_traces(hovertemplate='Document_Type_x: %{x}<br>Document_Type_y: %{y}<extra></extra>') # update

fig.update_layout(scattermode='group', scattergap=0.9)
fig.update_xaxes(categoryorder = 'category ascending')
fig.update_yaxes(categoryorder = 'category ascending')

fig.show()

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.