R ggplot过多的分类标签

R ggplot过多的分类标签,r,ggplot2,R,Ggplot2,所以,我有一个情节,它有太多的组,我想把它们隔开。这看起来很糟糕,因为标签都捆在一起了。有没有一种方法可以在我的图表之间放置空格或填充 sea_abnb %>% group_by(neighbourhood) %>% summarize(neigh_med = median(price)) %>% ggplot(aes(x=reorder(neighbourhood, neigh_med), y=neigh_med)) + labs(x="Room type

所以,我有一个情节,它有太多的组,我想把它们隔开。这看起来很糟糕,因为标签都捆在一起了。有没有一种方法可以在我的图表之间放置空格或填充

sea_abnb %>%
  group_by(neighbourhood) %>%
  summarize(neigh_med = median(price)) %>%
  ggplot(aes(x=reorder(neighbourhood, neigh_med), y=neigh_med)) +
    labs(x="Room type", y="Median Price per Night") +
    geom_point() +
    coord_flip() 

请注意,保存时可以设置尺寸。可以通过增加高度将其拉伸。在绘图的长轴上放置标签可能更好。但是,这种类型的绘图可能不是显示数据的最佳方式

ggsave(
  filename="my_plot.png",
  width = 400,
  height = 800,
  units = c("in", "cm", "mm"),
)
一种可能是将数据分为两个面板,并可能添加条以改善外观:


d注意,保存时可以设置尺寸。可以通过增加高度将其拉伸。在绘图的长轴上放置标签可能更好。但是,这种类型的绘图可能不是显示数据的最佳方式

ggsave(
  filename="my_plot.png",
  width = 400,
  height = 800,
  units = c("in", "cm", "mm"),
)
一种可能是将数据分为两个面板,并可能添加条以改善外观:


d@Allan Cameron是对的,地图将是绘制这些数据的好方法

我一直想尝试一下
rgdal
,这个问题给了我一个借口

让我们用zipcode绘制中间挂牌价格

library(rgdal)
library(ggplot2)
library(dplyr)
library(stringr)
library(broom)
library(data.table)
sea_abnb <- fread("http://data.insideairbnb.com/united-states/wa/seattle/2020-03-17/data/listings.csv.gz")

temp <- tempfile()
temp2 <- tempfile()
download.file("https://opendata.arcgis.com/datasets/83fc2e72903343aabff6de8cb445b81c_2.zip",temp)
unzip(zipfile = temp, exdir = temp2)
seat.shp <- readOGR(temp2, stringsAsFactors = F)
seat.shp@data$id <- rownames(seat.shp@data)
seat.points <- tidy(seat.shp, region="id") %>% left_join(seat.shp@data, by="id")
seat.df <- sea_abnb %>%
  mutate(ZIPCODE = str_extract(zipcode,"^[0-9]{5}"),
         price = as.numeric(str_replace(price,"\\$",""))) %>%
  group_by(ZIPCODE) %>%
  summarize(zip_med = median(price,na.rm=TRUE)) %>% 
  dplyr::select(ZIPCODE, zip_med) %>% 
  right_join(seat.points)

ggplot() + geom_polygon(data = seat.df, aes(x = long, y = lat, group = ZIPCODE, fill = zip_med), colour = "black") +
  coord_map(xlim= c(-122.5,-122.05), ylim = c(47.45,47.8)) + labs(y= "Lattitude", x = "Longitude") + 
  guides(fill=guide_legend(title="Median Zipcode\nListing Price"))
库(rgdal)
图书馆(GG2)
图书馆(dplyr)
图书馆(stringr)
图书馆(扫帚)
库(数据表)

艾伦·卡梅隆是对的,地图将是绘制这些数据的好方法

我一直想尝试一下
rgdal
,这个问题给了我一个借口

让我们用zipcode绘制中间挂牌价格

library(rgdal)
library(ggplot2)
library(dplyr)
library(stringr)
library(broom)
library(data.table)
sea_abnb <- fread("http://data.insideairbnb.com/united-states/wa/seattle/2020-03-17/data/listings.csv.gz")

temp <- tempfile()
temp2 <- tempfile()
download.file("https://opendata.arcgis.com/datasets/83fc2e72903343aabff6de8cb445b81c_2.zip",temp)
unzip(zipfile = temp, exdir = temp2)
seat.shp <- readOGR(temp2, stringsAsFactors = F)
seat.shp@data$id <- rownames(seat.shp@data)
seat.points <- tidy(seat.shp, region="id") %>% left_join(seat.shp@data, by="id")
seat.df <- sea_abnb %>%
  mutate(ZIPCODE = str_extract(zipcode,"^[0-9]{5}"),
         price = as.numeric(str_replace(price,"\\$",""))) %>%
  group_by(ZIPCODE) %>%
  summarize(zip_med = median(price,na.rm=TRUE)) %>% 
  dplyr::select(ZIPCODE, zip_med) %>% 
  right_join(seat.points)

ggplot() + geom_polygon(data = seat.df, aes(x = long, y = lat, group = ZIPCODE, fill = zip_med), colour = "black") +
  coord_map(xlim= c(-122.5,-122.05), ylim = c(47.45,47.8)) + labs(y= "Lattitude", x = "Longitude") + 
  guides(fill=guide_legend(title="Median Zipcode\nListing Price"))
库(rgdal)
图书馆(GG2)
图书馆(dplyr)
图书馆(stringr)
图书馆(扫帚)
库(数据表)

sea_abnb您可以使字体大小变小,这样标签就不会重叠。然而,我不认为结果会很好。我会问自己是否真的需要所有的标签。顺便说一句,欢迎来到Stackoverflow!也许在西雅图的地图上覆盖颜色以表示价格是显示数据的更好方式?或者转换为交互式绘图(从
ggplot
转换为
plotly
非常容易)当用户将鼠标移到点上时,使用标签作为工具提示。您可以减小字体大小,使标签不会重叠。然而,我不认为结果会很好。我会问自己是否真的需要所有的标签。顺便说一句,欢迎来到Stackoverflow!也许在西雅图地图上覆盖颜色以表示价格是显示数据的更好方式?或者转换为交互式绘图(从
ggplot
转换为
plotly
非常容易),当用户将鼠标悬停在点上时,标签作为工具提示。