【发布时间】:2021-06-17 22:07:41
【问题描述】:
我在 R 中有一个示例数据框。
df <- data.frame(product_id= c("A","A","A","B","B","B","C","C"), year = c("2019", "2020", "2021", "2019", "2020", "2021", "2019", "2020"), profit=c(1.5, 2.2, 2.3, 1.4, 1, 16, 1.9, 25), sale = c(1.2, 1.8, 1.9, 2.0, 1.6, 20.0, 3.0, 33.2))
我正在尝试在 ggplot 中绘制三个单独的图表,其中 y='year'、x='profit' 并且数据将按 product_id 过滤。所有的 geom_point 都是圆形的。这可以通过以下产品 A 的代码来实现:
library(ggplot2)
library(dplyr)
ggplot(df) +
geom_point(data= df %>% filter(product_id =='A'), aes(x=year, y=profit, size=sale), shape = 16, color='Red') +
scale_size_continuous(range = c(5, 10), guide = FALSE) +
labs(x = "Year", y = "Profit")
但是为了定制,如果 y 轴值(利润)小于 2.0,我愿意更改圆的填充颜色。边框应该是红色作为原始颜色,但填充颜色应该是黄色。对于上图,2019 年的点将是红色边框和黄色填充颜色。我尝试了以下方法,但它不起作用:
library(ggplot2)
library(dplyr)
ggplot(test_df) +
geom_point(data= test_df %>% filter(product_id =='A'), aes(x=year, y=profit, size=sale), shape = 16, color='Red') +
scale_size_continuous(range = c(5, 10), guide = FALSE) +
scale_colour_manual(name = 'profit < 2', values = setNames(c('Yellow','Red'),c(T, F)), guide = FALSE) +
labs(x = "Year", y = "Profit")
另一个问题是所有三个图形的圆形尺寸都没有保持标准的相对尺寸。我正在尝试开发一个标准尺寸比例,例如
对于“销售”列值
对于 1.9
对于 10
and for sale_value > 20;大小将是 30。
我不知道如何实现,甚至不知道它是否可能。
【问题讨论】:
标签: r ggplot2 dplyr geom-point