R:是否可以在 ggplot2 中渲染更精确的轮廓权重?
R: Is it possible to render more precise outline weights in ggplot2?
创建一个简单的堆叠条形图:
require(ggplot2)
g <- ggplot(mpg, aes(class)) +
geom_bar(aes(fill = drv, size=ifelse(drv=="4",2,1)),color="black",width=.5)
我可以将 size=ifelse(drv=="4",2,1)
中的大小值更改为许多不同的值,但我仍然得到相同的两个线宽。有没有解决的办法? (2,1) 生成与 (1.1,1) 和 (10,1) 相同的图表。理想情况下,较粗的重量应该比标准轮廓稍厚一点,而不是大 10 倍。
作为添加的背景,您可以在 aes()
之外设置 size
并具有您期望的轮廓宽度比例,但我无法分配 ifelse
aes()
之外的条件而不会出现错误。
您作为美学给出的两个尺寸值只是任意级别,ggplot 并未按表面值取值。
您可以使用
ggplot(mpg, aes(class)) +
geom_bar(
aes(fill = drv, size = drv == "4"),
color = "black", width = .5) +
scale_size_manual(values = c(1, 2))
其中 values
参数允许您为您在美学中定义的每个级别指定精确尺寸。
创建一个简单的堆叠条形图:
require(ggplot2)
g <- ggplot(mpg, aes(class)) +
geom_bar(aes(fill = drv, size=ifelse(drv=="4",2,1)),color="black",width=.5)
我可以将 size=ifelse(drv=="4",2,1)
中的大小值更改为许多不同的值,但我仍然得到相同的两个线宽。有没有解决的办法? (2,1) 生成与 (1.1,1) 和 (10,1) 相同的图表。理想情况下,较粗的重量应该比标准轮廓稍厚一点,而不是大 10 倍。
作为添加的背景,您可以在 aes()
之外设置 size
并具有您期望的轮廓宽度比例,但我无法分配 ifelse
aes()
之外的条件而不会出现错误。
您作为美学给出的两个尺寸值只是任意级别,ggplot 并未按表面值取值。
您可以使用
ggplot(mpg, aes(class)) +
geom_bar(
aes(fill = drv, size = drv == "4"),
color = "black", width = .5) +
scale_size_manual(values = c(1, 2))
其中 values
参数允许您为您在美学中定义的每个级别指定精确尺寸。