所以我遵循这个 ggplot2 小提琴图指南: http://www.sthda.com/english/wiki/ggplot2-violin-plot-quick-start-guide-r-software-and-data-visualization
我正在使用mean_sdl函数,尝试将汇总统计数据添加到我的小提琴图中。代码运行得很好,但我收到错误“警告:忽略未知参数:mult”。这是代码:
> p<-ggplot(TG, aes(x=dose, y=len)) + geom_violin(trim=FALSE)
> p + stat_summary(fun.data="mean_sdl", mult=1, geom="crossbar", width=0.1)
Warning: Ignoring unknown parameters: mult
> p + stat_summary(fun.data=mean_sdl, mult=2, geom="pointrange", color="red")
Warning: Ignoring unknown parameters: mult
Run Code Online (Sandbox Code Playgroud)
其中 mult 是与标准差相乘的因子,它会生成绘制的四分位数或范围的长度。有谁知道为什么会发生这种情况?我在网上找不到任何东西。此人的示例中也不断出现相同的错误:
(例如https://ropensci.github.io/plotly/ggplot2/stat_summary.html)
d + stat_sum_df("mean_sdl", mult = 1, mapping = aes(group = cyl))
Error: Unknown parameters: mult
Run Code Online (Sandbox Code Playgroud) 我想绘制一个小提琴 ggplot,其中 x 轴是年份,y 轴是值。每年,我都需要三个小提琴图。当我尝试这样做时,y 轴没有堆叠在一起,因此这三个轴的密度没有清楚地显示。每年,我希望它们绘制在相同的 y 轴上,并且填充颜色是透明的,以便所有三个都可以看到。该数据集相当长(很难复制较短的数据集),但它是sum1.14、sum5.14和的三个数据帧sum10.14。
plot.density.tenor <- function(cent_list_sum1,cent_list_sum5,cent_list_sum10,start_year,end_year){
df1 <- melt(ldply(cent_list_sum1, data.frame))
df5 <- melt(ldply(cent_list_sum5, data.frame))
df10 <- melt(ldply(cent_list_sum10, data.frame))
df <- rbind(df1,df5,df10)
years <- seq(start_year,end_year)
df$year <- rep(rep(as.character(seq(start_year,end_year)),each=nrow(df1)/length(years)),3)
df$tenor <- rep(c("1","5","10"),each=nrow(df1))
df$tenor <- factor(df$tenor, levels=c("1", "5", "10"))
ggplot(df, aes(year, value, color = tenor)) +
geom_flat_violin() +
ggtitle("Centrality Measure Distribution") + ylab("Centrality") + xlab("Year") +
stat_summary(colour="red", size = 0.5)
#theme(legend.position = "none")
}
plot.density.tenor(sum1.14,sum5.14,sum10.14,2010,2021)
Run Code Online (Sandbox Code Playgroud)
使用http://seaborn.pydata.org/ generated/seaborn.violinplot.html 上的示例:
import seaborn as sns
sns.set_style("whitegrid")
tips = sns.load_dataset("tips")
ax = sns.violinplot(x="day", y="total_bill", data=tips)
Run Code Online (Sandbox Code Playgroud)

(来源:pydata.org)
如何在每把小提琴的顶部绘制两条小水平线(例如指示分布的 2.5 百分位数和 97.5 百分位数的误差线上限?
我使用以下代码创建了雨云图:
#雨图
dx = 'Time Point'; dy = 'Score'; ort = "v"; pal = "Set2"; sigma = .2;
f, ax = plt.subplots(figsize=(7, 5))
pt.RainCloud(x = dx, y = dy, data = df, palette = pal, bw = sigma,
width_viol = .9, ax= ax, orient = ort, move = .2)
plt.title("")
plt.ylabel('Score', fontsize = 20)
plt.xlabel('', fontsize = 20)
plt.grid(color = 'w')
if savefigs:
plt.savefig('/Users/zeidanlab/Desktop/gv/rainplots/figure_tsc.png', bbox_inches='tight')
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法使箱线图与分布斑点重叠。