簡體   English   中英

用多條線繪制線圖

[英]Plotting a line graph with multiple lines

我正在嘗試繪制具有不同顏色的多條線的折線圖,但運氣不佳。 我的數據集包含10個州和9個選舉中每個州的投票率(因此,這些州列在左欄中,隨后的每個列都是1980年至2012年的選舉年,每個州的投票率10個州)。 我想要一個圖表,其中X軸為年份,Y軸為投票率,每個州都有一條線。

我找到了這個先前的答案( 從R中的數據框中繪制多行 )到一個類似的問題,但是似乎無法使用我的數據來復制它。 任何想法/建議將不勝感激!

使用tidyr::gatherreshape::melt將數據轉換為長格式。

## Simulate data
d <- data.frame(state=letters[1:10],
                '1980'=runif(10,0,100),
                '1981'=runif(10,0,100),
                '1982'=runif(10,0,100))

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

## Transform to a long df
e <- d %>% gather(., key, value, -state) %>% 
  mutate(year = as.numeric(substr(as.character(key), 2, 5))) %>%
  select(-key) 

## Plot
ggplot(data=e,aes(x=year,y=value,color=state)) +
  geom_point() +
  geom_line()

在此處輸入圖片說明

請在您的問題中包括您的數據或樣本數據,以便我們可以直接回答您的問題,並幫助您找到問題的根源。 使用dput()可以簡化數據粘貼。

這里還有一個問題的解決方案,使用SCOA的樣本數據和reshape2包,而不是tidyr包:

# Sample data
d <- data.frame(state = letters[1:10],
                '1980' = runif(10,0,100),
                '1981' = runif(10,0,100),
                '1982' = runif(10,0,100))

library(reshape2)
library(ggplot2)

# Melt data and remove X introduced into year name
melt.d <- melt(d, id = "state")
melt.d[["variable"]] <- gsub("X", "", melt.td[["variable"]])

# Plot melted data
ggplot(data = melt.d,
       aes(x = variable, 
           y = value, 
           group = state, 
           color = state)) +
  geom_point() +
  geom_line()                         

產生: 樣地

請注意,我從scoa的示例中省略了as.numeric()轉換的年份,因此這就是為什么上面的圖不包括scoa的額外x軸刻度的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM