python - 如何在 Python/Pylab/Seaborn/Plotly 中创建比较散点图/群图?

标签 python matplotlib seaborn scatter-plot swarmplot

对于一个最小的、可重现的示例 (reprex),我们假设以下数据结构中有动物的 react 时间(秒),并保存在 .csv 文件中。该文件名为“ReactionTimes.csv”

"Birds","Mammals"
1.15878,1.494555
1.418479,1.738676
1.034765,1.541106
1.310064,1.328025
1.087671,1.583186
1.001802,1.770486

到目前为止,我无法从这里调整解决方案 How to create swarm plot with matplotlib 我的数据结构,因此我的代码如下所示:

import pandas as pd
import pylab as plt
import seaborn as sns

RT = pd.read_csv('ReactionTimes.csv')

print(RT) 正确打印表格。

命令 sns.scatterplot(RT["Birds"],RT["Mammals"])sns.swarmplot(RT["Birds"],RT["Mammals"]) 生成绘图,但这些绘图看起来不像所需的绘图。目标应该如下所示:

Comparative scatter plot

那么如何创建比较散点图/群体图?我对使用 Pylab、Seaborn 或 Plotly 库中的任何一个的解决方案都满意。

最佳答案

您需要融合数据帧以从宽格式框架变为长格式框架。 Seaborn 主要使用长框架。

u ="""Birds,Mammals
1.15878,1.494555
1.418479,1.738676
1.034765,1.541106
1.310064,1.328025
1.087671,1.583186
1.001802,1.770486"""

import io
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

dfin = pd.read_csv(io.StringIO(u))


df = pd.melt(dfin)

sns.swarmplot(x="variable", y="value", data=df)
sns.boxplot(x="variable", y="value", data=df,
            boxprops={'facecolor':'None'}, showfliers=False,)
plt.show()

enter image description here

关于python - 如何在 Python/Pylab/Seaborn/Plotly 中创建比较散点图/群图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57179566/

相关文章:

python - 我可以更改点图上的一个标记大小吗?

python-3.x - 如何在Seaborn热图旁边添加列

python - pygame KEYUP 仅注册 KEYDOWN

Python:通过局域网连接?

python - 在 Django 上保存表单后重定向

python - Pandas matplotlib.pyplot 按列值添加图例

matplotlib - 控制seaborn中的网格线间距

python - matplotlib 将箱线图和直方图与图例结合起来

python - 多个时间序列数据的重叠细线图

python - 如何将 django-rest-swagger 2.0 与现有 DRF 应用程序集成(初学者)