簡體   English   中英

在 ggplot2 中控制小提琴 plot 的 x 軸

[英]control x axis of a violin plot in ggplot2

我在 ggplot2 中為時間序列 year_1 到 year_32 生成小提琴圖。 我的 df 中的年份存儲為數值。 從我看到的例子來看,似乎我必須將這些數字年份值轉換為 plot 每年一把小提琴; 事實上,如果我在沒有 as.factors 的情況下運行代碼,我會得到一把大小提琴。 我想了解為什么 geom_violin 在 x 軸上不能有數值; 或者如果我錯了,如何使用它們?

所以:

my_data$year <- as.factor(my_data$year)

p <- ggplot(data = my_data, aes(x = year, y = continuous_var)+
 geom_violin(fill = "#FF0000", color = "#000000")+
 ylim(0,500)+
 labs(x = "x_label", y = "y_label")

p +my_theme()

工作正常,但如果我跳過

my_data$year <- as.factor(my_data$year)

它不起作用,我多年來都得到了一把大而肥的小提琴。 為什么?

TIA

你錯過了這一行末尾的 a ) p <- ggplot(data = my_data, aes(x = year, y = continuous_var)

我用ToothGrowth數據集構建了一個可重現的示例:這現在應該可以工作了:

library(ggplot2)
my_data <- ToothGrowth

my_data$dose <- as.factor(my_data$dose)

p <- ggplot(data = my_data, aes(x = dose, y = len))+
              geom_violin(fill = "#FF0000", color = "#000000")+
              ylim(0,500)+
              labs(x = "x_label", y = "y_label") +
              theme_bw()
p

在此處輸入圖像描述

PS:這個討論更適合交叉驗證,因為它更多的是統計而不是編碼問題。

我不確定 100%,但這是我的解釋:小提琴 plot 顯示了一組數據的密度,您可以將數據分組,以便您可以 plot 為您的數據的每個部分使用一把小提琴。 但是,如果您用來划分組的度量(x 軸)是連續的,那么您將有無限的分組(一組用於 0 的值,一組用於 0.1,一組用於 0.01,等等),所以在最后,您實際上無法划分數據,而 ggplot 可能會忽略 x 變量並為您的所有數據制作一把小提琴。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM