我在 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;大小为 5,
对于 1.9 < 销售价值 <= 10;大小范围为 10 到 20,
对于 10 < 销售价值 <= 20;大小为 25
并且 sale_value > 20;大小将是 30。
我无法弄清楚这是如何实现的,甚至可能与否。