plot - Seaborn swarmplot 和 pointplot 闪避对齐
问题描述
有没有办法将点图的均值 + SEM 与相应的群图对齐?
这是我的代码:
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
fig, ax = plt.subplots(nrows=1, ncols=1)
n=200
to_plot = np.random.uniform(low=0.0, high=1.0, size=n)
mods = ['a','b']
model_col = mods*(n/2)
opt=['1']*(n/2)+['2']*(n/2)
d={'Model':pd.Series(model_col),'Par':pd.Series(to_plot),'opt':pd.Series(opt)}
df = pd.DataFrame(d)
sns.swarmplot(x='Model', y='Par',hue='opt',dodge=True,data=df,size=2,palette=['#469990','#000075'])
sns.pointplot(x="Model", y="Par", hue='opt', data=df,join=False,dodge=True,
ci=68,n_boot=1000,capsize=0.1,errwidth=0.5,scale = 1.5,palette=['k','k'])
ax.get_legend().remove()
plt.show()
这是我的情节:
解决方案
似乎swarmplot
并pointplot
为其各自的dodge
参数使用不同的默认值。但是,您可以将它们设置为相等的值,例如
sns.swarmplot(..., dodge=0.4)
sns.pointplot(..., dodge=0.4)
推荐阅读
- java - 谁能解释为什么当我尝试保存我的实体时,它总是覆盖我数据库的现有行?
- python - 如何在 Keras tensorflow 中加载特定子类模型的权重
- android - Android - 按屏幕边缘的按钮按字母顺序对回收站视图进行排序
- xtext - 来自 2 个不同 DSL 的交叉引用
- python - GitHub 操作工作流程中的 pip-sync 失败
- json - bash 中带引号和不带引号的相同值的相等性
- jenkins - 从另一个分支上的另一个仓库构建 Jenkins 管道(作业)
- html - 按钮单击与页面加载的行为不同
- python - 根据用户的回答列出清单
- broadcastreceiver - 是一种让广播“等待”直到接收器启动的方法吗?