Это копия того, как выглядит мой набор данных: значения параметров, собранные на 3 станциях в течение месяцев май, июнь, июль, август, сентябрь. Я пытаюсь построить график количества осадков, температуры воздуха, температуры воды по месяцам для каждой станции, используя ggplot . Я продолжаю получать сообщения об ошибках, показанные ниже.
Как мне написать код, чтобы правильно построить эти переменные. Возможно ли, что я неправильно понимаю расположение столбцов или строк?
Это то, что я пробовал:
library(readxl)
badagry_stations <- read_excel("~/903 -/badagry stations.xlsx")
View(badagry_stations)
require(ggplot2)
library(ggplot2)
data.frame(badagry_stations)
tidyr::gather(badagry_stations)
summary(data.frame(badagry_stations))
ggplot(badagry_stations, aes(rainfall)) + geom_line(aes(air temperature)), colour = "red")
ggplot(dat, aes(rain, turbidity, colour = 'station'))
Поэтому я попытался изменить наборы данных, как показано ниже, как будто это может быть проблемой.
Station month Air.temperature Water.temperature...C. Rainfall..mm.
1 Station 1 MAY 31 30.00 275.6
2 Station 1 JUNE 28 28.67 236.2
3 Station 1 JULY 28 29.00 142.7
4 Station 1 AUG 28 27.00 257.6
5 Station 1 SEPT 28 30.00 329.5
6 Station 2 MAY 29 28.00 273.6
7 Station 2 JUNE 28 28.67 236.2
8 Station 2 JULY 28 29.00 142.7
9 Station 2 AUG 28 27.00 257.6
10 Station 2 SEPT 28 30.00 329.5
11 Station 3 MAY 30 29.00 277.6
12 Station 3 JUNE 28 28.67 236.2
13 Station 3 JULY 28 29.00 142.7
14 Station 3 AUG 28 27.00 257.6
15 Station 3 SEPT 28 30.00 329.5
Turbidity..NTU. TSS..mg.L. TDS..mg.L. pH...25.C Conductivity..µS.cm.
1 4.40 2 10199.0 7.22 18100.0
2 6.72 2 14701.0 7.29 24100.0
3 6.66 12 8618.0 7.35 13900.0
4 8.35 4 10450.1 7.34 16855.0
5 42.70 33 1712.0 7.34 2920.2
6 3.95 3 9873.0 7.76 15800.0
7 3.19 1 13620.0 7.45 22700.0
8 16.25 18 5144.1 7.45 8870.0
9 27.40 18 4912.6 7.61 8470.0
10 29.60 26 2482.7 7.31 4070.0
11 4.15 2 9964.0 7.16 16700.0
12 4.56 2 14100.0 7.48 23500.0
13 14.07 12 6182.0 7.44 10660.0
14 22.31 17 5063.4 7.63 8730.3
15 35.31 31 2696.2 7.32 4420.1
Я также пробовал эту перестановку набора данных
data.frame(badagry_stations)
month MAY.1 JUNE.1
1 Air temperature 31 28
2 Water temperature (°C) 30 28.67
3 Rainfall (mm) 275.60000000000002 236.2
но я продолжаю получать этот код ошибки:
ggplot(badagry_stations, aes(rainfall)) +
geom_line(aes(air temperature)), colour = "red")
#> Error: unexpected symbol in "ggplot(badagry_stations, aes(rainfall)) +
#> geom_line(aes(air temperature"



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Простой способ справиться с именами столбцов, состоящими из нескольких слов, — использовать символ подчеркивания для их разделения.
Образец кода:
#badagry_stations<-data.frame(badagry_stations)
#tidyr::gather(badagry_stations)
#summary(data.frame(badagry_stations))
library(ggplot2)
library(ggthemes)
ggplot(badagry_stations, aes(x=`Rainfall..mm.`,y=`Turbidity..NTU.`, group=Station)) +
geom_line(aes(color=Station), size=2)+
theme_wsj()+
labs(x = "Rainfall(mm)", y = "Turbidity(NTU)", fcolor = "Station number" )+
theme(axis.text.x = element_text(hjust = 1, face = "bold", size=12, color = "black"),
axis.title.x = element_text(face = "bold", size=16, color = "black"),
axis.text.y = element_text(face = "bold", size=12, color = "black"),
axis.title.y = element_text(face = "bold", size=16, color = "black"),
strip.text = element_text(size=10, face = "bold"),
plot.title = element_text(hjust = 0.5,size=20, face = "bold"),
legend.text = element_text( color = "black", size = 16,face = "bold"),
legend.position = "bottom",
legend.box = "horizontal",
legend.title = element_blank())
Сюжет:
Или сгруппируйте по переменной month
Образец кода:
library(ggplot2)
library(ggthemes)
badagry_stations$month<-factor(badagry_stations$month,levels=c("MAY","JUNE","JULY","AUG","SEPT"))
ggplot(badagry_stations, aes(x=`Rainfall..mm.`,y=`Turbidity..NTU.`, group=month)) +
geom_bar(aes(fill=month), stat = "identity", width=1)+
theme_wsj()+
labs(x = "Rainfall(mm)", y = "Turbidity(NTU)", fcolor = "Station number" )+
theme(axis.text.x = element_text(hjust = 1, face = "bold", size=12, color = "black"),
axis.title.x = element_text(face = "bold", size=16, color = "black"),
axis.text.y = element_text(face = "bold", size=12, color = "black"),
axis.title.y = element_text(face = "bold", size=16, color = "black"),
strip.text = element_text(size=10, face = "bold"),
plot.title = element_text(hjust = 0.5,size=20, face = "bold"),
legend.text = element_text( color = "black", size = 16,face = "bold"),
legend.position = "bottom",
legend.box = "horizontal",
legend.title = element_blank())
Сюжет:
Пример данных:
badagry_stations<-structure(list(Station = c("Station 1", "Station 1", "Station 1",
"Station 1", "Station 1", "Station 2", "Station 2", "Station 2",
"Station 2", "Station 2", "Station 3", "Station 3", "Station 3",
"Station 3", "Station 3"), month = c("MAY", "JUNE", "JULY", "AUG",
"SEPT", "MAY", "JUNE", "JULY", "AUG", "SEPT", "MAY", "JUNE",
"JULY", "AUG", "SEPT"), Air.temperature = c(31, 28, 28, 28, 28,
29, 28, 28, 28, 28, 30, 28, 28, 28, 28), Water.temperature = c(30,
28.67, 29, 27, 30, 28, 28.67, 29, 27, 30, 29, 28.67, 29, 27,
30), Rainfall..mm. = c(275.6, 236.2, 142.7, 257.6, 329.5, 273.6,
236.2, 142.7, 257.6, 329.5, 277.6, 236.2, 142.7, 257.6, 329.5
), Turbidity..NTU. = c(4.4, 6.72, 6.66, 8.35, 42.7, 3.95, 3.19,
16.25, 27.4, 29.6, 4.15, 4.56, 14.07, 22.31, 35.31), TSS..mg.L. = c(2L,
2L, 12L, 4L, 33L, 3L, 1L, 18L, 18L, 26L, 2L, 2L, 12L, 17L, 31L
), TDS..mg.L. = c(10199, 14701, 8618, 10450.1, 1712, 9873, 13620,
5144.1, 4912.6, 2482.7, 9964, 14100, 6182, 5063.4, 2696.2), pH...25.C = c(7.22,
7.29, 7.35, 7.34, 7.34, 7.76, 7.45, 7.45, 7.61, 7.31, 7.16, 7.48,
7.44, 7.63, 7.32), Conductivity..µS.cm. = c(18100, 24100, 13900,
16855, 2920, 15800, 22700, 8870, 8470, 4070, 16700, 23500, 10660,
8730.3, 4420.1)), class = "data.frame", row.names = c(NA, -15L
))
Когда у вас есть пробелы в имени переменной, вам нужно окружить имя переменной обратными кавычками, например:
'air temperature'