当前位置: 首页 > 知识库问答 >
问题:

如何用4组画geom_line,如何在没有数据的情况下限制x轴

汤修贤
2023-03-14

数据:组年月均值组1 2018年6月1.58组1 2018年7月0.92组1 2018年8月3.52组1 2018年9月5.9组1 2018年10月5.95组1 2018年11月11.21组1 2018年1 2月13.55组1 2019年1月4.67组1 2019年2月4.35组1 2019年3月4.04组1 2019年4月1日 1 2019年9月3.95第一组2019年10月1.83第一组2019年11月5日第一组2019年1 2月12.95第一组2020年1月8.89第一组2020年2月0.75第二组2018年6月0第二组2018年7月1.2第二组2018年8月1.83第二组2018年9月3.29日第二组2018年10月3.32第二组2018年11月1日第二组2 2 2019年4月1.94第二组2019年5月0第二组2019年6月0.2第二组2019年7月1.25第二组2019年8月2.86第二组2019年9月7.93第二组2019年10月3.25第二组2019年11月2.8第二组2019年12月2日第二组2020年1月0.25第二组2020年2月1.33第三组2018年6月0.11日第三组2011 11月9.89第三组2018年12月9.81第三组2019年1月2.78第三组2019年2月3.97第三组2019年3月5.75第三组2019年4月2.19第三组2019年5月0.95第三组2019年6月0第三组2019年7月1.31第三组2019年8月3.77第三组2019年9月1.79第三组2019年10月3.14第三组 2.4第四组2018年7月0.98第四组2018年8月1.1第四组2018年9月2.32第四组2018年10月6.7第四组2018年11月15.66第四组2018年12月8.18第四组2019年1月3.69第四组2019年2月0.8第四组2019年3月0.04第四组2019年4月1.17第四组2019年5月7第四组2019 第四组2019年11月3.91第四组2019年12月7.2第四组2020年1月6.81第四组2020年2月0.8

数据$月

  1. 是否可以绘制线图组图。
  2. 如何删除没有 data.plot 的 x 轴标签(2018 年 1 月:5 月,2020 年 3 月:12 月)

共有1个答案

顾斌
2023-03-14

你很接近了。这应该可以做到:


Data  <- read.table(text=
"Group  Year    Month   Mean
1   2018    Jun 1.58
1   2018    Jul 0.92
1   2018    Aug 3.52
1   2018    Sep 5.9
1   2018    Oct 5.95
1   2018    Nov 11.21
1   2018    Dec 13.55
1   2019    Jan 4.67
1   2019    Feb 4.35
1   2019    Mar 4.04
1   2019    Apr 1.33
1   2019    May 20.5
1   2019    Jun 1
1   2019    Jul 2.67
1   2019    Aug 5.79
1   2019    Sep 3.95
1   2019    Oct 1.83
1   2019    Nov 5
1   2019    Dec 12.95
1   2020    Jan 8.89
1   2020    Feb 0.75
2   2018    Jun 0
2   2018    Jul 1.2
2   2018    Aug 1.83
2   2018    Sep 3.29
2   2018    Oct 3.32
2   2018    Nov 1
2   2018    Dec 6
2   2019    Jan 0
2   2019    Feb 2.25
2   2019    Mar 2.14
2   2019    Apr 1.94
2   2019    May 0
2   2019    Jun 0.2
2   2019    Jul 1.25
2   2019    Aug 2.86
2   2019    Sep 7.93
2   2019    Oct 3.25
2   2019    Nov 2.8
2   2019    Dec 2
2   2020    Jan 0.25
2   2020    Feb 1.33
3   2018    Jun 0.11
3   2018    Jul 0.68
3   2018    Aug 1.3
3   2018    Sep 0.99
3   2018    Oct 2.67
3   2018    Nov 9.89
3   2018    Dec 9.81
3   2019    Jan 2.78
3   2019    Feb 3.97
3   2019    Mar 5.75
3   2019    Apr 2.19
3   2019    May 0.95
3   2019    Jun 0
3   2019    Jul 1.31
3   2019    Aug 3.77
3   2019    Sep 1.79
3   2019    Oct 3.14
3   2019    Nov 1.82
3   2019    Dec 6.5
3   2020    Jan 2.72
3   2020    Feb 1.33
4   2018    Jun 2.4
4   2018    Jul 0.98
4   2018    Aug 1.1
4   2018    Sep 2.32
4   2018    Oct 6.7
4   2018    Nov 15.66
4   2018    Dec 8.18
4   2019    Jan 3.69
4   2019    Feb 0.8
4   2019    Mar 0.04
4   2019    Apr 1.17
4   2019    May 7
4   2019    Jun 0.53
4   2019    Jul 2.93
4   2019    Aug 2.73
4   2019    Sep 2.07
4   2019    Oct 6.59
4   2019    Nov 3.91
4   2019    Dec 7.2
4   2020    Jan 6.81
4   2020    Feb 0.8
", header=TRUE)

Data <- Data %>% mutate(
            Group = paste("Group",Group),
            Year = factor(Year),
            Month = factor( Month, levels = month.abb )
        )

Data %>%
    ggplot(aes(x = Month, y = Mean, group=Group)) +
    geom_point() +
    geom_line(aes(colour = Group)) +
    facet_grid(~ Year, scales = "free_x") +
    theme_minimal() +
    theme(legend.position = "none")

(请注意,由于我在您的帖子中粘贴了数据转储,因此我必须从输入数据中省略“组”,否则read.table无法轻松理解空间,这就是我将其粘贴回去的原因。这对解决方案并不重要)

 类似资料:
  • 所以我有一个扩展JPanel的“GameCourt”类。这个类覆盖paintComponent代码,以便绘制一些组件(迷宫、字符和一些硬币)。这个JPanel是扩展JLayeredPane的类的一部分,它有两层,一层用于绘制背景(使用扩展JPanel的BackgroundPanel类),另一层用于绘制我想要的所有元素(一个重置按钮,一个标签..) 所以我想要的是JLayeredPane中背景上方的

  • 问题内容: 我在Android应用程序上使用Firebase,我知道如何使用EventListener从数据库中获取数据。到目前为止。 我的问题是:我有一个ReciclerView,它显示数据中的信息,但仅当我修改数据库时才显示。如果我关闭该应用程序然后再次打开,它什么也不会显示。然后,我进行一些修改,并将所有元素显示在容器中。 有什么方法可以加载数据而无需等待事件,而是手动获取? 先感谢您。 更

  • 我正在制作应用程序与视频播放器在它和我的整个结构是为只有肖像视图,除了这个视频播放器。我只想为这个视图启用景观旋转。但是我在很多论坛上做了很多文章,每一篇文章都是为了给App Delegate添加一些代码,但是我没有。那我能做什么。

  • 问题内容: 我正在尝试设置spring xml配置,而不必创建进一步的。但是,即使我将数据库属性包括在 spring.xml: 我在这里想念什么? 问题答案: 在entityManagerFactory bean定义中指定“ packagesToScan”和“ persistenceUnitName”属性。 请注意,这适用于Spring版本> 3.1

  • 问题内容: 我正在学习使用Selenium(v2.20)来领先一些 即将使用它创建浏览器测试的程序员。我想在 陷阱到达之前发现它们,而我却跌入了一个陷阱。 当我创建ChromeDriver时,它始终会弹出“ Google Chrome EULA”并 显示两个按钮:“接受并运行”和“取消”。因为我希望这是一个 自动化测试,所以让用户单击按钮是不可能的。 我查看了Chromium CommandSwi

  • 我们想要自己的db连接配置而不是使用JNDI,但同时,我们也想使用DataSource而不是使用Drive verManager,怎么做?