簡體   English   中英

堆積條plot:y軸得到

[英]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")

ggplot2 的 y 軸不正確

如果我們將其轉換為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

ggplot2,固定 y 軸

暫無
暫無

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

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