在R中绘制数据帧

时间:2016-05-25 13:11:57

标签: r dataframe

我有一个

形式的数据框
Region Name     3-15    4-15    5-15    ...    3-16   

 Name1          30      82      56    ...      32
 Name2          65      23      38    ...      11
   ...         ...     ...     ...    ...     ...
Name18          87      33      11    ...      51

第一列是区域名称,其他列是随时间记录的事件(每月按列)

我想根据相关名称绘制记录的月度值。具体而言,每个命名区域的不同行具有不同的颜色。任何建议都会受到赞赏,许多数据框的绘图功能似乎在不同格式的帧上起作用。

dput() data:    
dataframe <- structure(list("LSOA Name" = c("Lancaster 001", "Lancaster 002", 
"Lancaster 003", "Lancaster 004", "Lancaster 005", "Lancaster 006", 
"Lancaster 008", "Lancaster 009", "Lancaster 010", "Lancaster 011", 
"Lancaster 013", "Lancaster 014", "Lancaster 015", "Lancaster 016", 
"Lancaster 017", "Lancaster 018", "Lancaster 019", "Lancaster 020"
), "3-15" = c(49L, 16L, 17L, 28L, 21L, 197L, 57L, 143L, 78L, 
121L, 67L, 223L, 41L, 86L, 66L, 27L, 40L, 77L), "4-15" = c(63L, 
11L, 26L, 29L, 19L, 203L, 69L, 154L, 82L, 125L, 62L, 198L, 44L, 
99L, 64L, 26L, 42L, 99L), "5-15" = c(67L, 10L, 20L, 30L, 10L, 
194L, 62L, 186L, 61L, 110L, 75L, 273L, 29L, 126L, 92L, 34L, 41L, 
88L), "6-15" = c(58L, 8L, 18L, 36L, 29L, 198L, 62L, 167L, 83L, 
110L, 59L, 254L, 26L, 99L, 73L, 17L, 30L, 109L), "7-15" = c(53L, 
29L, 27L, 23L, 38L, 188L, 56L, 149L, 90L, 129L, 37L, 226L, 32L, 
119L, 57L, 14L, 30L, 96L), "8-15" = c(44L, 9L, 25L, 28L, 29L, 
237L, 69L, 171L, 78L, 108L, 45L, 261L, 22L, 103L, 68L, 33L, 35L, 
108L), "9-15" = c(59L, 12L, 18L, 35L, 19L, 230L, 45L, 128L, 74L, 
144L, 56L, 223L, 26L, 90L, 51L, 27L, 23L, 120L), "10-15" = c(45L, 
26L, 31L, 23L, 25L, 195L, 53L, 155L, 74L, 120L, 58L, 276L, 38L, 
92L, 72L, 25L, 40L, 123L), "11-15" = c(31L, 11L, 33L, 15L, 19L, 
188L, 52L, 127L, 66L, 102L, 50L, 241L, 26L, 74L, 72L, 26L, 35L, 
68L), "12-15" = c(34L, 22L, 21L, 22L, 17L, 205L, 80L, 150L, 73L, 
109L, 50L, 228L, 29L, 57L, 59L, 14L, 45L, 93L), "1-16" = c(20L, 
9L, 25L, 21L, 11L, 199L, 46L, 124L, 65L, 117L, 40L, 224L, 28L, 
88L, 43L, 22L, 18L, 94L), "2-16" = c(54L, 11L, 29L, 20L, 11L, 
164L, 44L, 117L, 70L, 85L, 46L, 192L, 23L, 89L, 50L, 27L, 29L, 
86L), "3-16" = c(53L, 11L, 24L, 26L, 19L, 203L, 45L, 144L, 66L, 
109L, 47L, 213L, 15L, 120L, 59L, 15L, 33L, 127L)), .Names = c("LSOA Name", 
"3-15", "4-15", "5-15", "6-15", "7-15", "8-15", "9-15", "10-15", 
"11-15", "12-15", "1-16", "2-16", "3-16"), row.names = c(NA, 
-18L), class = "data.frame")

1 个答案:

答案 0 :(得分:1)

在ggplot中按组绘制线条的典型方法是将数据移动到长格式,其中一列标识组,其他列标识x和y轴值。

此示例将您的数据转换为包含三列的长格式:LSOAName,month_col和values_col。它会在月份中添加日值,并将该列转换为日期。然后它为每个组绘制一条线。

我已重命名您的数据框d,因为数据框很容易被误解为函数data.frame()。

d <- d %>% [pipeline]

enter image description here

修改

magrittr包中找到

%&lt;&gt;%。它是复合管道分配运算符。 %&gt;%返回管道的结果时,%&lt;&gt;%会将结果分配回左侧对象。

而不是写

d %<>% [pipeline]

您可以通过编写

将结果分配给d
{{1}}