我如何在ggplot中绘制3个变量分离图?

问题描述 投票:0回答:1

我想创建一个时间序列图,显示两个变量如何随着时间的推移而变化,并给它们涂上适当的颜色?

我有2个地区,英格兰和威尔士,我计算了每个地区的总税收和总收入。

我想把这些数据绘制在一个时间序列图上。ggplot 年,使用年数变量。

我如何做到这一点,并分别为各地区着色?

我有一个年份变量,我将把它放在x轴上,然后我想绘制两个 incometaxtaxpaid 在图上,但显示它们是如何随着时间的推移而变化的?

我如何添加第3个坐标轴以获得这两个变量随时间变化的情况?

我试过这段代码,但没有达到我想要的效果。

ggplot(tax_data, filter %>% aes(x=date)) +
  geom_line(aes(y=incometax, color=region)) +
  geom_line(aes(y=taxpaid, color=region))+
r ggplot2
1个回答
1
投票

ggplot在开始的时候有点难以掌握--我猜你是想实现下面这样的东西。

假设你的数据格式是有一列日期,incometax和taxpaid 我在这里创建一个例子。

library(tidyverse)

dataset <- tibble(date = seq(from = as.Date("2015-01-01"), to = as.Date("2019-12-31"), by = "month"),
                  incometax = rnorm(60, 100, 10),
                  taxpaid = rnorm(60, 60, 5))

现在,为每个日期绘制一条线 incometaxtaxpaid 我们需要塑造或 "整顿 "数据(详见):

dataset <- dataset %>% pivot_longer(cols = c(incometax, taxpaid))

现在你有了三个这样的列 -- 我们已经把以前的列名变成了变量。name:

# A tibble: 6 x 3
  date       name      value
  <date>     <chr>     <dbl>
1 2015-01-01 incometax 106. 
2 2015-01-01 taxpaid    56.9
3 2015-02-01 incometax 112. 
4 2015-02-01 taxpaid    65.0
5 2015-03-01 incometax  95.8
6 2015-03-01 taxpaid    64.6

现在有了正确的格式 ggplot 而你可以映射出 name 到线条的颜色。

ggplot(dataset, aes(x = date, y = value, colour = name)) + geom_line()
© www.soinside.com 2019 - 2024. All rights reserved.