仅将网格线添加到较小的中断处(ggplot)

2023-12-02

我试图制作如下图表ggplot。我希望 y 标签显示从 1 到 50 的整组值,但我只想每 10 个数字生成水平网格线。我以为添加minor_breaks然后控制主题就可以了。但是,将主要网格线设置为element_blank似乎也覆盖了小网格线。我在这里发现了一些问题,人们询问添加比标签更多的网格线,但我想要相反的情况。

如何将网格线数量设置为小于分隔线数量?谢谢!

enter image description here

这是该图的代码:

 library(nsRFA)
library(ggplot2)
library(dplyr)

data(hydroSIMN)
annualflows %>% ggplot(aes(x = anno, y = cod)) + 
    geom_point(
        shape = 45,
        size = 5,
        col = "blue"
    ) + 
    scale_y_reverse(
        breaks = 1:50,
        labels = 1:50,
        minor_breaks = seq(10, 50, by = 10)
    ) +
    scale_x_continuous(breaks = seq(1920, 1980, by = 10)) +
    labs(
        x = "Year",
        y = "Code"
    ) + 
    theme(
        panel.background = element_blank(),
        panel.border = element_rect(fill = NA),
        text = element_text(size = 10),
        panel.grid.major.x = element_line(color = "grey80"),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_line(color = "grey80") # This doesn't work

    )

从读到这篇文章https://github.com/tidyverse/ggplot2/issues/403,似乎存在一些问题minor_breaks。然而,使用geom_hline()应该给你你想要的。

library(nsRFA)
library(ggplot2)
library(dplyr)


data(hydroSIMN)

minors<-seq(10,50,by=10)

annualflows %>% ggplot(aes(x = anno, y = cod)) + 
  geom_point(
    shape = 45,
    size = 5,
    col = "blue"
  ) + 
  scale_y_reverse(
    breaks = 1:50,
    labels = 1:50,
    minor_breaks = seq(10, 50, by = 10)
  ) +
  scale_x_continuous(breaks = seq(1920, 1980, by = 10)) +
  labs(
    x = "Year",
    y = "Code"
  ) + 
  theme(
    panel.background = element_blank(),
    panel.border = element_rect(fill = NA),
    text = element_text(size = 10),
    panel.grid.major.x = element_line(color = "grey80"),
    #panel.grid.major.y = element_blank(),
    #panel.grid.minor.y = element_line(color = "grey80") # This doesn't work
  )+
  geom_hline(mapping=NULL, yintercept=minors,colour='grey80')

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅将网格线添加到较小的中断处(ggplot) 的相关文章

随机推荐

  • 如何使用 XSSF (Apache POI 3.8) 调整图表大小?

    我想知道是否有办法使用 Apache POI XSSF 调整图表大小 目前我正在使用 Excel 模板 该模板具有一个图表 当使用 nameRanges 插入更多数据时 该图表会发生变化 一切正常 我面临的唯一麻烦是 图表始终保持相同的大小
  • 更改 Android 中的通知意图

    我有一项服务显示一条通知 我希望该通知能够在用户每次按下该通知时转到我的应用程序的特定活动 通常它是用户显示的最后一个 但并非总是如此 如果该活动之前已启动 则应返回该活动 如果没有 则应在应用程序的任务内打开该活动 并将其添加到活动任务中
  • 用对象动态填充 ArrayList

    我有抽象类 Human 它由其他两个类 Student 和 Worker 扩展 我正在尝试填写两个数组列表 Student 类型的 ArrayList 和 Worker 类型的 ArrayList 是动态的 public abstract
  • http 到 https 重定向 (tomcat/jboss)

    我们希望将访问应用程序的 http url 的所有流量重定向到 https 为此 我们在deploy jboss web deployer conf 目录中的 web xml 中设置以下值
  • 在perl中将元素添加到xml文件

    我有一个 xml 文件 如下所示
  • 收集器分组按java 8

    考虑这两个类 学科类别 class Subject long id String category String description public Subject long id String category String descr
  • 用于更改 Word 文档中的字体的脚本

    我有一个 Word 2007 文件 我想将 Courier New 字体的所有用法更改为 Lucida 控制台字体 我需要一个脚本来查找以该字体格式化的所有单词并将其更改为新字体 我怎样才能做到这一点 在Word中 您可以自己录制宏 然后打
  • 如何在ajax调用中传递特殊字符

    如何在ajax调用中传递特殊字符变量i并在spring控制器中获取值 如果文件name jsuduu function deleeteimg var filename filenm text alert filename var filen
  • 将除少数 IP 地址之外的所有请求重定向到子目录

    这个问题试图结合从以前的一些答案中获得的知识 所以不要标记为重复 除非答案满足即将给出的所有标准 这就是我想做的 我需要暂时将 htaccess 访问者重定向到我的网站的克隆副本 以便我可以对现有网站进行修改 因此 我有以下需求 1 所有用
  • IP 摄像机捕获 RTSP 流大延迟 OPENCV

    我正在尝试在 IP 摄像机上进行一些处理 效果很好 但我发现现实世界和视频捕获之间存在大约 7 10 秒的延迟 我正在使用 rtsp ip port live ext 该相机有一个网络界面 IE ActiveX 可以以非常低的延迟显示图像
  • 从 json 文本文件加载 JSONObject 的最佳方法是什么?

    将包含 JSON 的文件加载到 JSONObject 中的最简单方法是什么 目前我正在使用 json lib 这就是我所拥有的 但它引发了异常 XMLSerializer xml new XMLSerializer JSON json xm
  • JsonView注解对象的所有字段

    如何将 Java 对象的所有字段包含到 JSON 响应 视图 中而不指定 JsonView在该 Java 对象的每个字段上 编辑 我需要这个来实现而不使用另一个外部库 这是一个常见问题 JsonView 该注释仅适用于方法和属性 因此您不能
  • Google 地图 V3 - 我无法调和关闭

    我知道这是一个常见问题 但我已经盯着 阅读谷歌搜索并盯着更多 但我看不出出了什么问题 我从 MySql 表填充地图 对英国邮政编码进行反向地理编码 在结果周围画一个圆圈 但我无法理解为什么我的闭包函数不起作用 据我了解 闭包原则是关于从循环
  • 如何在 Symfony2 中使用 Doctrine2 创建 2 个连接(mysql 和 postgresql)

    我是 Symfony2 的新手 我的问题很简单 我会在一个捆绑包中使用不同主机和驱动程序上的 2 个与数据库的连接 你能帮我解决这个问题吗 你可以这样做 doctrine dbal default connection alpha conn
  • 在 Insert 命令上更新 mysql 表

    我有一种情况 当在第一个表中插入一行数据时 我想更新第二个表 为了实现这一点 我使用 mysql 触发器 下面是我正在使用的查询 但它对我不起作用 DELIMITER CREATE TRIGGER after insert AFTER IN
  • 在 SWT 中设置/获取 RadioGroupFieldEditor 的值

    我正在尝试在我正在开发的 Eclipse RCP 应用程序中添加 RadioGroupFieldEditor 但似乎无法做两件关键的事情 设置单选按钮的值 即当打开对话框 窗口时 我想将默认值设置为 button1 获取所选单选按钮的当前值
  • 使用 JavaScript Fetch API 将 POST 请求发送到在本地主机上运行的 FastAPI 应用程序

    我的本地计算机上有一个 FastAPI 应用程序在以下 URL 下运行 http localhost 8000 使用以下 Python 代码 from typing import Union from fastapi import Fast
  • jQuery 或 Javascript 检查图像是否已加载

    我知道 Stackoverflow 上有很多这样的内容 但我还没有在最新版本的 jquery 1 10 2 中找到适合我的内容 我确实尝试过 lazy load function 但我相信经过一些研究使用 loadjQuery 1 8 中不
  • 从 javascript 调用 ASP 函数

    你好 我有这个问题 我试图找到一种从 asp 控制器调用 javascript 函数的方法 我在这里做的是代码 lt head gt
  • 仅将网格线添加到较小的中断处(ggplot)

    我试图制作如下图表ggplot 我希望 y 标签显示从 1 到 50 的整组值 但我只想每 10 个数字生成水平网格线 我以为添加minor breaks然后控制主题就可以了 但是 将主要网格线设置为element blank似乎也覆盖了小