更改 ggplot2 中次要网格线的数量(每个主要网格线),r

莎莉亚·维尔玛

我读了这个答案:How to control number of minor grid lines in ggplot2?

虽然我想不出一种方法来协调它与我的要求。

我希望有一种方法可以输入两个主要刻度之间的次要网格线的数量。(或次要网格大小与主要网格大小的比率)假设我想将其分成 5 个部分(4 个次要网格线)。我怎么做?

由于会有很多图表,其中我不知道轴的限制,因此我无法明确定义一个次要网格线步长的大小。我想使用 ggplot2 使用的任何算法来选择主要网格线的数量,并且只有 4 倍的次要网格线。

我希望右边的 r 图看起来像左边的 excel 图

在此处输入图片说明

CODE(以防有助于解决问题)

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))) ;
莎莉亚·维尔玛

我找到了一种可能的解决方案,尽管它不是很优雅。*

基本上,您提取主要网格线,然后根据乘数创建一系列次要网格线。

我已经回答了一个相关的问题(作为对 Eric Watt 回答的修改)。这只是语法的变化,在任何文档中都没有很好地解释。

这是链接:ggplot2 每次主要中断的次要中断的整数倍

这是代码:

library(ggplot2)

df <- data.frame(x = 0:10,
                 y = 10:20)
p <- ggplot(df, aes(x,y)) + geom_point()

majors <- ggplot_build(p)$layout$panel_params[[1]]$x.major_source;majors
multiplier <- 5
minors <- seq(from = min(majors),
              to = max(majors),
              length.out = ((length(majors) - 1) * multiplier) + 1);minors
p + scale_x_continuous(minor_breaks = minors)

*不是很优雅,因为:

  1. 如果图形没有获得任何数据(这可能发生在循环中,因此需要为它设置例外),它就会失败。

  2. 它只从现有主要网格线的最小值到最大值开始次要网格线,而不是在可以放置点的整个坐标空间的末端

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更改特定网格线 ggplot2 R 脚本的颜色

来自分类Dev

如何更改Excel图表中主要网格线的起点?

来自分类Dev

使ggplot2中的单个网格线更粗

来自分类Dev

更改单个网格线颜色ggvis

来自分类Dev

iOS图表更改网格线颜色

来自分类Dev

如何更改TStringGrid网格线的颜色?

来自分类Dev

删除网格线,但保留框架(matplotlib中的ggplot2样式)

来自分类Dev

如何在ggplot2中为theme_bw()使用较深的网格线?

来自分类常见问题

如何更改ggplot2点图上的网格线间距?

来自分类Dev

如何更改ggplot2点图上的网格线间距?

来自分类Dev

替换gtable中ggplot的元素:标签和网格线

来自分类Dev

R-将ggplot网格线放在前景中

来自分类Dev

如何在ggplot2中使横坐标(即网格线y = 0)显得更黑或更粗?

来自分类Dev

更改背景水平和垂直网格线的颜色

来自分类Dev

更改ListView标头和网格线的颜色

来自分类Dev

无法更改简单的WPF网格线颜色

来自分类Dev

R + OpenStreetMap + ggplot2 +更改刻度线

来自分类Dev

R + OpenStreetMap + ggplot2 +更改刻度线

来自分类Dev

更改nvd3中的第一条垂直网格线

来自分类Dev

ggplot:将网格线与geom_tile的末端对齐

来自分类常见问题

更改ggplot2中的字体

来自分类Dev

无法更改ggplot2中的图例

来自分类Dev

更改ggplot2的图例中的标签

来自分类Dev

JavaFx 2.x:如何绘制较小的网格线

来自分类Dev

Python cv2 HoughLines网格线检测

来自分类Dev

更改 R 中 ggplot2 图形上的标签数量

来自分类Dev

更改轴项并更新网格ggplot2

来自分类Dev

ggplot2:更改每个构面中的填充颜色

来自分类Dev

如何更改一条特定线的网格线宽度