首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在ggplot2 R中,如何在大号以上做小号?

在ggplot2 R中,如何在大号以上做小号?
EN

Stack Overflow用户
提问于 2022-12-04 10:41:38
回答 2查看 34关注 0票数 3

在情节中,更小的泡沫会被更大的泡沫所掩盖。如果我使用alpha,它们就会出现。我希望小气泡不使用alpha就能叠加更大的气泡。

代码语言:javascript
运行
复制
   library(ggplot2)
   library(dplyr)

数据集在gapminder库中提供。

代码语言:javascript
运行
复制
    library(gapminder)
    data <- gapminder %>% filter(year=="2007") %>% dplyr::select(-year)

    # Most basic bubble plot
   data %>%
  arrange(desc(pop)) %>%
  mutate(country = factor(country, country)) %>%
 ggplot(aes(x=gdpPercap, y=lifeExp, size=pop, color=continent)) +
geom_point(alpha=0.5) +
scale_size(range = c(.1, 24), name="Population (M)")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-12-04 11:33:25

小的点已经画在大点上了。你需要的是要点的大纲。您可以通过选择shape = 21并为其整体颜色使用填充美学来做到这一点。他们的轮廓可以是你喜欢的任何颜色,尽管在这里我已经把它们变成了填充颜色的一个更深的版本,它给出了一个更微妙的轮廓:

代码语言:javascript
运行
复制
library(ggplot2)
library(dplyr)
library(gapminder)
library(colorspace)

data <- gapminder %>% filter(year=="2007") %>% dplyr::select(-year)

data %>%
  arrange(desc(pop)) %>%
  mutate(country = factor(country, country)) %>%
  ggplot(aes(gdpPercap, lifeExp, size = pop, fill = continent,
             color = after_scale(darken(fill, 0.3)))) +
  geom_point(shape = 21) +
  scale_size(range = c(.1, 24), name = "Population (M)") +
  scale_x_continuous("GDP per Capita", labels = scales::dollar) +
  ylab("Life Expectancy") +
  theme_minimal(base_size = 20) +
  scale_fill_brewer(palette = "Pastel1") +
  ggtitle("Average life expectancy 2007") +
  guides(size = "none",
         fill = guide_legend(override.aes = list(size = 6))) +
  theme(panel.background = element_rect(fill = "gray95", color = NA),
        legend.title = element_text(size = 25, face = 2),
        legend.text = element_text(size = 25, face = 2))

票数 3
EN

Stack Overflow用户

发布于 2022-12-04 14:12:04

以下是@Allan Cameron解决方案的另一个版本:

代码语言:javascript
运行
复制
# Libraries
library(ggplot2)
library(dplyr)
library(viridis)
library(gapminder)

gapminder %>% 
  filter(year=="2007") %>%
  select(-year) %>% 
  arrange(desc(pop)) %>%
  mutate(country = factor(country, country)) %>%
  ggplot(aes(x=gdpPercap, y=lifeExp, size=pop, fill=continent)) +
  geom_point(alpha=0.5, shape=21, color="black") +
  scale_size(range = c(.1, 24), name="Population (M)", guide="none")+
  scale_fill_viridis(discrete=TRUE, option="A") +
  theme_bw() +
  theme(legend.position="bottom") +
  ylab("Life Expectancy") +
  xlab("Gdp per Capita") 

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74674746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档