r - geom_jitter 更小 增加点大小
问题描述
我试图在我的箱线图中每年绘制一些人作为一个点,点的大小作为年龄。当我不写 size=Pnr$Alterpunkt 时(这是我根据年龄保存点大小的列。对于 15 岁的人来说就像 0.1,对于 16 岁的人来说是 0.2 等等。)在aes 它看起来很完美,但是我没有传奇,我想拥有一个。如果我把它写进aes,点会变得更大,这看起来不太好,因为我有很多点。
然后它看起来像这样:
我已经尝试将形状设置为“。” 或行程=0。我也尝试使用 guide_legend,但似乎没有任何改变
这是情节的代码:
q <- ggplot(Pnr, aes(group=year, x=year, y=Ges))
q <- q + geom_boxplot(outlier.shape = NA)
q <- q + scale_x_continuous(breaks = c(2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,
2015,2016,2017,2018,2019,2020))
q <- q + scale_y_continuous(limits = c(-1000,10000))
q <- q + theme(legend.position = c(0.3, 0.3),
legend.direction = "horizontal",
legend.background = element_rect(fill = "white", colour = NA),
legend.title=element_blank(),
panel.background = element_rect(fill="white", colour="darkgrey", linetype="solid"),
panel.grid.major = element_line(colour="lightgrey", size=0.1, linetype="solid"),
panel.grid.minor = element_line(colour="lightgrey", size=0.1, linetype="solid"),
strip.background = element_rect(fill="lightgrey", colour = "darkgrey"))
q <- q + geom_jitter(aes(size=Pnr$Alterpunkt, shape="."), show.legend = T)
我想让它看起来像这样,但有一个传说
我希望有人能帮助我。
解决方案
如果没有您的数据示例,很难知道如何专门提供帮助。以下是一些建议,希望对您有所帮助:
geom_jitter(aes(size=Alterpunkt)...
而不是geom_jitter(aes(size=Pnr$Alterpunkt, shape=".")
,因为使用$
内部 ggplot 调用可能会导致错误,并且该形状调用应该在 之外(aes()
如果有的话)。使用
scale_size_area(max_size =...)
或scale_size_continuous(range = c(...))
定义点的大小。根据您的审美目标,您可以应用转换来调整尺寸随着基础变量的变化而变化的方式。在下面的案例中,我喜欢使用的外观trans = scales::exp_trans(base = 1.1)
——这使得大点比中型点大得多,但没有显着大。调整口味。
library(gapminder)
library(tidyverse)
fake_df <- gapminder %>%
mutate(age = (lifeExp - 23.5)*1.7,
Ges = (gdpPercap/1000)^0.5) %>%
select(continent, year, age, Ges)
q <- ggplot(fake_df, aes(group=year, x=year, y=Ges))
q <- q + geom_boxplot(outlier.shape = NA)
q <- q + scale_x_continuous(breaks = seq(1950, 2020, 10))
# q <- q + scale_y_continuous(limits = c(-1000,10000))
q <- q + theme(legend.position = c(0.3, 0.6),
legend.direction = "horizontal",
legend.background = element_rect(fill = "white", colour = NA),
legend.title=element_blank(),
panel.background = element_rect(fill="white", colour="darkgrey", linetype="solid"),
panel.grid.major = element_line(colour="lightgrey", size=0.1, linetype="solid"),
panel.grid.minor = element_line(colour="lightgrey", size=0.1, linetype="solid"),
strip.background = element_rect(fill="lightgrey", colour = "darkgrey"))
q <- q + geom_jitter(aes(size=age), show.legend = T) +
scale_size_continuous(range = c(0.01, 1.5),
trans = scales::exp_trans(base = 1.2),
breaks = c(1, 80, 100))
q
推荐阅读
- reactjs - 导入 React 连接组件
- typescript - 在 Typescript 中禁用 PrimeNG 日历月份选择
- react-native - react-native-background-geolocation:postTemplate 在 iOS 平台上不起作用
- artifactory - JFrog 工件远程存储库工件
- html - Django重定向到另一个页面不起作用
- blazor - Blazor 中 RadzenDataList 中 RadzenTextBox 的 2 路绑定
- python - AWS Sagemaker Jupyter 笔记本中的记录器输出
- mysql - HQL 不相等且不在查询中不起作用
- javascript - 如何在 mongo-go-driver 中使用 js 函数
- asp.net - 我正在尝试在 asp dot net 项目中进行卡片的水平排列