对于一个最小的、可重现的示例 (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"])
生成绘图,但这些绘图看起来不像所需的绘图。目标应该如下所示:
那么如何创建比较散点图/群体图?我对使用 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()
关于python - 如何在 Python/Pylab/Seaborn/Plotly 中创建比较散点图/群图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57179566/