Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 我想在同一个绘图中绘制多个值_R_Dataframe_Dataset - Fatal编程技术网

R 我想在同一个绘图中绘制多个值

R 我想在同一个绘图中绘制多个值,r,dataframe,dataset,R,Dataframe,Dataset,我试图在同一个ggplot中绘制多个变量,我想根据年份更改线条的颜色。这是我到目前为止所拥有的,但我希望它更容易理解,因此我尝试这样做: ggplot(data = larceny_cases_districts, aes(x = Year, y = Cases))+ geom_line(color = "#d62f53", size = 2 )+ geom_point(shape = 21, color = "black", fill =

我试图在同一个ggplot中绘制多个变量,我想根据年份更改线条的颜色。这是我到目前为止所拥有的,但我希望它更容易理解,因此我尝试这样做:

ggplot(data = larceny_cases_districts, aes(x = Year, y = Cases))+
    geom_line(color = "#d62f53", size = 2 )+
    geom_point(shape = 21, color = "black", fill = "black", size = 6)+
    geom_text(aes(label = Cases), hjust=-1,vjust=0.1, color="#ff0000")+
    theme_ipsum()+
    ggtitle("Larceny Crimes in 2015-2018")
这就是我的数据帧现在的设置方式:

  larceny_cases_districts
  Year Cases
1 2015  2895
2 2016  4561
3 2017  4450
4 2018  2982
但我希望它看起来有点像这样,这样我就可以使用
color=var\u value
geom\u line()
上创建多行,但我找不到一种可行的方法:

 larceny_cases_districts
              District 2015  2016  2017  2018
            1 A1      value value value value
            2 D4    value value value value
            3 B2    value value value value
我的目标是制作一个有3条线的地块,每一条线是每个地区每年的价值

dput的输出(头(盗窃案件区,20))


也许你正在寻找这个:

#Code
ggplot(data = larceny_cases_districts, aes(x = Year,
                                           y = Cases,
                                           color=factor(Year),
                                           group=1,
                                           fill=factor(Year)))+
  geom_line(size = 2 )+
  geom_point(shape = 21, color = "black", size = 6)+
  geom_text(aes(label = Cases), hjust=-1,vjust=0.1, color="#ff0000")+
  theme_ipsum()+
  ggtitle("Larceny Crimes in 2015-2018")
输出:

使用的一些数据:

#Data
larceny_cases_districts <- structure(list(Year = 2015:2018, Cases = c(2895L, 4561L, 4450L, 
2982L)), class = "data.frame", row.names = c("1", "2", "3", "4"
))
#数据

盗窃案件地区这类问题通常与重塑数据有关。格式应为长格式,数据应为宽格式。请参见关于如何将数据从宽格式重塑为长格式的说明

如果原始数据已经是长格式,则在下面的打印说明之前,不需要使用
dplyr/tidyr
管道

library(dplyr)
library(tidyr)
library(ggplot2)
library(hrbrthemes)

larceny_cases_districts %>%
  pivot_longer(
    cols = starts_with('20'),
    names_to = 'Year',
    values_to = 'Cases'
  ) %>%
  mutate(Year = as.integer(Year)) %>%
  ggplot(aes(Year, Cases, fill = District)) +
  geom_line() +
  geom_point(shape = 21, color = "black", size = 6) +
  geom_text(aes(label = Cases), hjust = -1, vjust = 0.1, color = "#ff0000") +
  ggtitle("Larceny Crimes in 2015-2018") +
  theme_ipsum()

数据

larceny_cases_districts <- 
structure(list(District = c("A1", "D4", "B2"), `2015` = c(10L, 
    6L, 1L), `2016` = c(13L, 8L, 8L), `2017` = c(10L, 2L, 6L), 
    `2018` = c(13L, 2L, 3L)), row.names = c("1", "2", "3"), 
    class = "data.frame")

盗窃案件地区这更接近我的预期,但我希望更像这样:像你这样的一个地块,但有3条不同的线,每个点代表一个地区的盗窃案件,例如,红线是2015年,第一个点是A1,然后是D4,最后是B2。而线条的颜色由每种颜色决定year@GuilhermeFrediani像条形图但使用线条?idk这看起来像什么?哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈!要绘制此图,您是否更改了此处的值<代码>盗窃案件区@GuillermeFrediani是的,我有。这就是
read.table
之后的
lappy
正在做的事情。采样的值与您的值完全不同,但绘制图形的一般原则是相同的。请您详细解释一下您的解决方案中的每一行,好吗?@GuilhermeFrediani如果数据是长格式的,则有一个x轴变量和一个y轴变量。然后,为了分隔行,需要一个分组变量。在这种情况下,它是
fill=District
。如果在对
ggplot
的初始调用中是
color=District
,那么这些行将按
District
的组进行着色。和
ggplot
自动分离组。好的,但我会尝试更改绘图的值,我需要做什么?
larceny_cases_districts <- 
structure(list(District = c("A1", "D4", "B2"), `2015` = c(10L, 
    6L, 1L), `2016` = c(13L, 8L, 8L), `2017` = c(10L, 2L, 6L), 
    `2018` = c(13L, 2L, 3L)), row.names = c("1", "2", "3"), 
    class = "data.frame")