[英]Stacked bar plot : y axis gets
我有一組這樣的測試數據
week reason gross
2 Наличные 356.54
6 FuelUp 1157.54
7 Альянс 706.54
10 FlashPay 1567.54
10 Наличные 135.54
19 FuelUp 3045.54
19 Карты Сбербанка 723.54
19 Наличные 1230.54
24 FuelUp 875.54
27 FlashPay 1260.54
28 Альянс 556.54
33 FlashPay 9756.54
33 Ваучеры 756.54
37 Ваучеры 473.54
38 Ваучеры 358.54
41 Карты Сбербанка 600.54
49 Наличные 100.00
我用這個代碼做了一個堆疊條 plot:
query$week = factor(query$week,ordered=TRUE)
p <- ggplot(query,aes(x=week,y=gross,fill=reason)) + theme_light() +
geom_col(position="stack") +
scale_fill_viridis(discrete = T) +
labs(x="Неделя 2020")
print(p)
其中查詢只是數據的一部分(來自 PostgrSQL。到目前為止,一切都很好,但是這樣的代碼會導致這樣的圖片具有不完整的 Y 軸。 為什么會這樣,我應該怎么做才能“延長”軸上的抽動和標簽?
您的gross
變量不是數字。
起始數據,其中gross
是字符串(或因子),而不是數字:
query <- structure(list(week = structure(c(1L, 2L, 3L, 4L, 4L, 5L, 5L,
5L, 6L, 7L, 8L, 9L, 9L, 10L, 11L, 12L, 13L), .Label = c("2",
"6", "7", "10", "19", "24", "27", "28", "33", "37", "38", "41",
"49"), class = c("ordered", "factor")), reason = c("", "FuelUp",
"", "FlashPay", "", "FuelUp", "_", "", "FuelUp", "FlashPay",
"", "FlashPay", "", "", "", "_", ""), gross = c("356.54", "1157.54",
"706.54", "1567.54", "135.54", "3045.54", "723.54", "1230.54",
"875.54", "1260.54", "556.54", "9756.54", "756.54", "473.54",
"358.54", "600.54", "100.00")), row.names = c(NA, -17L), class = "data.frame")
(我倉促的導入扼殺了reason
......這會稍微扭曲顯示/圖例,但不會改變我回答的前提。)
plot:
p <- ggplot(query,aes(x=week,y=gross,fill=reason)) + theme_light() +
geom_col(position="stack") +
scale_fill_viridis(discrete = T) +
labs(x="Неделя 2020")
如果我們將其轉換為numeric
, plot 看起來更正常。
query$gross <- as.numeric(query$gross)
p <- ggplot(query,aes(x=week,y=gross,fill=reason)) + theme_light() +
geom_col(position="stack") +
scale_fill_viridis(discrete = T) +
labs(x="Неделя 2020")
p
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.