我目前面臨一個讓我頭疼的問題,我無法真正找出解決方案。
基本上,我正在繪制一個分組密度圖(分組變數是“member_casual”,具有 2 個級別的分類變數)。我想要的輸出是同一面板上的兩條密度曲線(無刻面)。到目前為止,我撰寫的代碼運行良好,并用 2 種不同顏色繪制了 2 條重疊的密度曲線。
然而,這兩條曲線的右尾實在太平了,所以我用coord_cartesian()它來設定 x 軸限制。我不想修剪正確的尾巴。因為這樣做會改變我的密度曲線。我只是想通過放大它從情節中洗掉尾巴,所以coord_cartesian()實際上是我唯一的選擇。
問題是:如果我使用coord_cartesian()密度曲線填充顏色就會消失,我會得到相同的 2 條具有透明區域的曲線。我究竟做錯了什么?
到目前為止,我嘗試過:
- 之后立即移動
coord_cartesian()代碼塊geom_density()。 - 洗掉
theme_stata()塊。
這是我資料的一個子集(希望 30 行就足夠了,我還洗掉了所有不必要的變數):
noGeo_data <- structure(list(ride_id = c("1E1D708751A45FBB", "EF150999D6799927",
"F01C5D9474B37874", "3241CB12D978A919", "3C1E34B72CF1DF6F", "7780E5A193F16BAA",
"A1250C4C180BDB7A", "DCE53F03D9E930BC", "C1C200854F4A4289", "4613417749115AB3",
"F02EF690EDD4F285", "39A8B97FBCDE17F0", "6D758C3BA9CD9ACC", "451AFECBD520C5F6",
"A064FF122A657C26", "0F4D542DEF5C14BE", "A8621985220E1873", "2E5E911966CE495B",
"ABBBC8112D862E07", "D4B96FE29C9BA6F0", "F8990692B6E4537A", "E852C8A32A5F1A81",
"0B6BAF9C856FC155", "44B43295891ECBF8", "1DFCB9DF65688E01", "0E2FA7FEF3BC9659",
"254204CC5A9514F4", "06457F2DE65545D2", "F457BEE1E71539B1", "971A92DBAFBE083D",
"330440548027D078"), ride_length = c(184, 1705, 1722, 1872, 13262,
848, 910, 1034, 35, 3639, 132, 1988, 2874, 2729, 1948, 475, 867,
1847, 2676, 116, 2136, 3499, 39763, 88, 2470, 1744, 1760, 1609,
3064, 44, 1223), member_casual = structure(c(1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L), .Label = c("casual",
"member"), class = "factor")), row.names = c(NA, -31L), class = c("tbl_df",
"tbl", "data.frame"))
在我到目前為止撰寫的代碼下方。
library(tidyverse)
library(ggthemes)
p_rLength <- ggplot(noGeo_data)
geom_density(
aes(x = ride_length/60, fill = member_casual, color = member_casual),
size = 0.8,
alpha = 0.70
)
scale_fill_manual(values = c("#400F73FF", "#FD9567FF"))
scale_color_manual(values = c("#400F73FF", "#FD9567FF"))
scale_x_continuous(breaks = seq(0,150,30))
scale_y_continuous(breaks = seq(0.00,0.15,0.01))
### coord_cartesian(xlim = c(0,150)) # error ??
theme_stata()
theme(
legend.position = c(.85,.9),
legend.background = element_rect(color = "whitesmoke"),
legend.title = element_blank(),
title = element_text(face = "bold"),
axis.title = element_text(face = "bold", size = 12),
panel.background = element_rect(color = "black", fill = "gray80"),
panel.grid.major.y = element_line(color = "whitesmoke"),
panel.grid.major.x = element_line(color = "whitesmoke"),
panel.grid.minor.x = element_line(color = "whitesmoke")
)
ggtitle(label = "Ride length density plot",
subtitle = "Grouped by member_casual")
xlab("ride length (minutes)")
uj5u.com熱心網友回復:
@I_O 回答了我的問題。這是一個實際的錯誤,它是由geom_density() alpha引數引起的。https://github.com/tidyverse/ggplot2/issues/4498
該錯誤發生在 alpha < 1 時。作為一種解決方法,您可以在 Rstudio 全域選項中將圖形設備后端設定為 AGG,該問題不再出現。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/483778.html
上一篇:x軸標簽未顯示在ggplot中
