微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R:使用 ggplot 更改辅助轴刻度标签的颜色

如何解决R:使用 ggplot 更改辅助轴刻度标签的颜色

我正在尝试生成与 ggplot 中的主刻度标签颜色不同的辅助轴刻度标签

我有一个包含两组线和相应的不同 y 轴的图。如下面的最小示例所示,我成功地使每对线 + 轴标签共享了共同的颜色,以将它们与另一对区分开来。但是,我希望刻度标签也共享这些颜色。

直观的方法是使用 sec.axis 和 sec_axis,但它们似乎没有提供一种方法来区分辅助轴的刻度/标签的格式与主轴的刻度/标签的格式。

有没有人可以在不改变主轴颜色的情况下更改辅助轴刻度标签的颜色?

library(ggplot2)

# Example data
df <- data.frame(y1 = 1:10,y2 = 2:11,x = 101:110)

# Example plot
df %>% ggplot2::ggplot() +
  geom_line(
    mapping = aes(x = x,y = y1),color = "black") +
  geom_point(
    mapping = aes(x = x,color = "black") +
  geom_line(
    mapping = aes(x = x,y = y2),color = "red") +
  geom_point(
    mapping = aes(x = x,color = "red") +
  scale_y_continuous(
    "Primary",sec.axis = sec_axis(~ .,name = "Secondary")
  ) +
  theme_bw() +
  theme(
    axis.title.y = element_text(color = "black"),axis.title.y.right = element_text(color = "red")
)

Example Plot

解决方法

你的代码没问题,只需添加theme():

axis.text.y.right = element_text(colour = "red")

像这样:

df %>% ggplot2::ggplot() +
  geom_line(
    mapping = aes(x = x,y = y1),color = "black") +
  geom_point(
    mapping = aes(x = x,color = "black") +
  geom_line(
    mapping = aes(x = x,y = y2),color = "red") +
  geom_point(
    mapping = aes(x = x,color = "red") +
  scale_y_continuous(
    "Primary",sec.axis = sec_axis(~ .,name = "Secondary")
  ) +
  theme_bw() +
  theme(
    axis.title.y = element_text(color = "black"),axis.title.y.right = element_text(color = "red"),axis.text.y.right = element_text(colour = "red")) #ADD THIS

祝你好运!

Color ticks

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?