【发布时间】:2018-07-20 13:20:58
【问题描述】:
我读了这个答案:How to control number of minor grid lines in ggplot2?
虽然我想不出一种方法来协调它与我的要求。
我希望有一种方法可以输入两个主要刻度之间的次要网格线的数量。 (或次要网格大小与主要网格大小的比率)假设我想将其分为 5 个部分(4 个次要网格线)。我该怎么做?
由于会有很多图表,其中我不知道轴限制,因此我无法明确定义一个次要网格线步长的大小。我想使用任何算法 ggplot2 来选择主要网格线的数量,而次要网格线的数量只有 4 倍。
我希望右边的 r 图表看起来像左边的 excel 图表
代码(以防有助于解决问题)
ggtheme <- theme(axis.line = element_line(size = 0.5, colour = "black"),
panel.background = element_rect(fill = "white"),
panel.grid.major = element_line(colour="grey90",size = rel(0.5)),
panel.grid.minor = element_line(colour="grey95",size = rel(0.25)));
ggp_sctr2 = ggplot( sub2_ac_data, aes(x=(sub2_ac_data[,i]),
y=sub2_ac_data[, rescol], colour = factor(sub2_ac_data[,topfac[1]]),
shape = factor(sub2_ac_data[,topfac[1]]) )) + geom_point(size = 2.5) +
scale_shape_manual(values=symlist[Nmsn_sub1+1:20]) +
scale_colour_manual(values = unname(cols[Nmsn_sub1+1:16])) +
geom_smooth(method="lm", formula = y ~ splines::bs(x, 3),
linetype = "solid", size = 0.25,fill = NA )
print(ggp_sctr2 + ggtitle( paste(scxnam[1],nomvar,
"vs",colnames(sub2_ac_data[i]),i, sep = " ")) +
theme(axis.text.x=element_text(angle = 90, hjust = 1,vjust = 0.5,size=8)) +
labs(x = colnames(sub2_ac_data[i]), y=colnames(sub2_ac_data[rescol]),
colour=colnames(sub2_ac_data[topfac[1]]),
shape=colnames(sub2_ac_data[topfac[1]])) + ggtheme +
theme(plot.title = element_text(face = "bold", size = 16,hjust = 0.5))) ;
【问题讨论】:
-
欢迎来到 StackOverflow!对于代码调试,请始终根据MCVE 和
r标记描述以reproducible 示例询问所需的输出。您可以使用dput()、reprex::reprex()或内置数据集来获取可重现的数据。 -
所以我添加了具有主题定义的代码部分,以及使用它的行。虽然我认为第一部分会是更有用的部分......请随时提出其他改进/改进建议
-
我没有看到您尝试在链接到的答案中包含建议的位置。您是否尝试过使用
minor.breaks?如果你这样做了,发生了什么? -
啊,是的,我尝试将它们添加到三行中每一行的末尾。发生以下情况,由行号给出:[[1]] 错误:不知道如何将 RHS 添加到主题对象。 __ [[2]] 没有小的垂直网格线。 ___ [[3]] 无明显影响。
-
另外,我找到了一个更接近我想要的答案,但它似乎对我不起作用:stackoverflow.com/questions/39691591/… 我复制粘贴了他们的确切代码,并且也为专业提供了相同的 NULL 值,然后随后出现错误。您(或某人)能否在您(他们)的最后进行测试?