簡體   English   中英

R ggplot。 如何 plot 只有變量 >0?

[英]R ggplot . HOW TO plot only the variables >0?

我正在繪制我省城鎮的 covid19 PCR 數量。 問題在於許多城鎮沒有任何 PCR 陽性。 我需要一種方法來 plot 只有具有至少 1+ PCR 的城鎮。

這是我的代碼:

library(tidyverse)
library('data.table') 

dfcsv1 <- read.csv("https://dadesobertes.gva.es/datastore/dump/ee17a346-a596-4866-a2ac-a530eb811737?bom=True", 
                   encoding = "UTF-8", header = TRUE, sep = ",")
colnames(dfcsv1) <- c("code","code2","Municipio", "PCR", "TasaPCR", "PCR14", 
                      "TasaPCR14", "Muertos", "TasaMuertos")

dfcsv1$TasaMuertos = as.numeric(gsub(",","\\.",dfcsv1$TasaMuertos))
dfcsv1$TasaPCR = as.numeric(gsub(",","\\.",dfcsv1$TasaPCR))
dfcsv1$TasaPCR14 = as.numeric(gsub(",","\\.",dfcsv1$TasaPCR14))

dfcsv1 %>%
  mutate(Municipio = fct_reorder(Municipio, PCR14)) %>%  
  
  ggplot(aes(x=Municipio, y=PCR14, fill =TasaPCR14)) +
  geom_bar(stat="identity", width=0.6) +
  coord_flip() +
  geom_text(data=dfcsv1, aes(y=PCR14,label=PCR14),vjust=1)+  
  scale_fill_gradient(low="steelblue", high="red")

正如其他人在評論中所說,您需要在重新排序因子水平之前過濾掉大於 0 的PCR14 但是,您還需要從geom_text中刪除data參數,否則所有這些因素水平都會回來,您將一團糟。 移除了零級已經有點擁擠了。

我認為您還應該將hjust vjust將文本放在更好的 position 中,因為您已經翻轉了坐標,並在(翻轉的)y軸范圍內增加了補償以適應它:

dfcsv1 %>%
  filter(PCR14 > 0) %>%
  mutate(Municipio = fct_reorder(Municipio, PCR14)) %>%
  ggplot(aes(x = Municipio, y = PCR14, fill = TasaPCR14)) +
    geom_bar(stat = "identity", width = 0.6) + 
    coord_flip() +
    geom_text(aes(y = PCR14,label = PCR14), hjust= -0.5) +
    scale_fill_gradient(low = "steelblue", high = "red") +
    ylim(c(0, 45))

在此處輸入圖像描述

順便說一句,去掉那些看起來好多了:

    dfcsv1 %>%
      filter(PCR14 > 1) %>%
      mutate(Municipio = fct_reorder(Municipio, PCR14)) %>%
      ggplot(aes(x=Municipio, y=PCR14, fill =TasaPCR14)) +
      geom_bar(stat="identity", width=0.6) + coord_flip() +
      geom_text(aes(y=PCR14,label=PCR14),hjust=-0.5)+  
      scale_fill_gradient(low="steelblue", high="red") +
      ylim(c(0, 45))

在此處輸入圖像描述

作為一般規則,無論 plot 的類型如何,或者您使用的是ggplotlattice還是基礎plot function,都應該首先發生子集。

plot(x[y>0] , y[y>0]) 

rest 是美學。

暫無
暫無

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

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