添加动态标题以根据另一个 df 中的值绘制
Add a dynamic title to plot based on value in another df
我有两个数据框,一个在下面的函数中用作输入,另一个称为缩写,包含两列:欧洲城市的缩写 (Abvr) 和城市的全名 (Name)。
我想要做的是在我的绘图中添加一个动态标题,以在缩写数据框中查找城市的全名。这个名字叫做“X”,我想在下面的函数中使用。我正在努力寻找一种方法来添加它。当我输入 ggtitle(paste0("Storms in ",abbreviations$name))
它只是选择随机城市列的第一个值,而不是与我的其他数据框中的城市相匹配的值。
我有以下代码:
plot_by_city<- function(dataframe, city_name, color="red"){
data1 <- filter(dataframe, city == city_name)
ggplot(data = data1, aes(x= scale, y= injuries)) +
geom_point(position= "jitter",shape=23, fill= color, color="black", size=3)+
ggtitle(paste0("Storms in ",X))
}
可能的输入是 plot_by_city((Dataframe,"AMS", "tan")
您可以使用 city_name
参数
对数据帧进行子集化
# Make data
df <- data.frame(
x = runif(100, 0, 10),
y = runif(100, 0, 10),
city = sample(c("AMS", "NYC", "SF"), 100, replace = TRUE)
)
cities_df <- data.frame(
abb = c("AMS", "NYC", "SF"),
city_full = c("Amsterdam", "New York", "San Francisco")
)
# Plot function
plot_by_city<- function(dataframe, city_name, color="red"){
data1 <- filter(dataframe, city == city_name)
city_full_name <- cities_df$city_full[cities_df$abb == city_name]
ggplot(data = data1, aes(x = x, y = y)) +
geom_point(position= "jitter",shape=23, fill= color, color="black", size=3) +
labs(title = paste0("Storms in ", city_full_name))
}
plot_by_city(df, "NYC")
我有两个数据框,一个在下面的函数中用作输入,另一个称为缩写,包含两列:欧洲城市的缩写 (Abvr) 和城市的全名 (Name)。
我想要做的是在我的绘图中添加一个动态标题,以在缩写数据框中查找城市的全名。这个名字叫做“X”,我想在下面的函数中使用。我正在努力寻找一种方法来添加它。当我输入 ggtitle(paste0("Storms in ",abbreviations$name))
它只是选择随机城市列的第一个值,而不是与我的其他数据框中的城市相匹配的值。
我有以下代码:
plot_by_city<- function(dataframe, city_name, color="red"){
data1 <- filter(dataframe, city == city_name)
ggplot(data = data1, aes(x= scale, y= injuries)) +
geom_point(position= "jitter",shape=23, fill= color, color="black", size=3)+
ggtitle(paste0("Storms in ",X))
}
可能的输入是 plot_by_city((Dataframe,"AMS", "tan")
您可以使用 city_name
参数
# Make data
df <- data.frame(
x = runif(100, 0, 10),
y = runif(100, 0, 10),
city = sample(c("AMS", "NYC", "SF"), 100, replace = TRUE)
)
cities_df <- data.frame(
abb = c("AMS", "NYC", "SF"),
city_full = c("Amsterdam", "New York", "San Francisco")
)
# Plot function
plot_by_city<- function(dataframe, city_name, color="red"){
data1 <- filter(dataframe, city == city_name)
city_full_name <- cities_df$city_full[cities_df$abb == city_name]
ggplot(data = data1, aes(x = x, y = y)) +
geom_point(position= "jitter",shape=23, fill= color, color="black", size=3) +
labs(title = paste0("Storms in ", city_full_name))
}
plot_by_city(df, "NYC")