我正在尝试创建一个复杂的ggplot图,但是有些事情没有按预期工作。
我提取了有问题的部分,点的创建及其相关的图例。
library(data.table)
library(ggplot2)
lev <- c("A", "B", "C", "D") # define levels.
bb <- c(40, 30,20,10,5)/100 # define breaks.
ll <- c("40%","30%","20%","10%","5%") # labels.
# Create data
nodos <- data.table(event = c("A", "B", "D", "C", "D"), ord = c(1, 2, 3, 3, 4),
NP = c(0.375, 0.25, 0.125, 0.125, 0.125))
ggplot() + geom_point(data=nodos,aes(x=ord,
y=event, size=NP), color="black", shape=16) +
ylim(lev) + scale_size_continuous(name="Prop.",
breaks=bb, labels=ll, range=c(0,6))+
scale_x_continuous(limits=c(0.5, 4.5),
breaks=seq(1,4,1))
Run Code Online (Sandbox Code Playgroud)
如您所见,无论使用什么中断和标签,我都无法强制ggplot绘制包含0%或10%的图例。scale_size_continuous只会创建两个元素。
较小的点的缩放比例非常差。
我也尝试过使用scale_scale_area,但是它也不起作用。
我正在使用R 3.4.2和ggplot2 2.2.1(还尝试了最新的github版本)。
我怎么才能得到它?
如果您将 设置limits为包含breaks您将能够更改图例。目前大部分breaks都在规模的默认限制之外。
ggplot() +
geom_point(data = nodos,
aes(x = ord, y = event, size = NP), color="black", shape = 16) +
scale_size_continuous(name = "Prop.",
breaks = bb,
limits = c(.05, .4),
labels = ll,
range = c(0, 6) )
Run Code Online (Sandbox Code Playgroud)