gpt4 book ai didi

r - 如何使用ggplot绘制R中的降雨径流图?

转载 作者:行者123 更新时间:2023-12-04 22:19:01 25 4
gpt4 key购买 nike

对于水文学家来说,通常使用降雨水文仪和水流水文仪。如下图所示。
Hyteograph and Hydrograph

X轴表示日期,左侧的Y轴表示降雨,右侧的Y轴表示流量。

我有一个降雨表和一个排水表。

  ####Rain Table####                   ####Discharge Table####
Date Value Date Value
2000-01-01 13.2 2000-01-01 150
2000-01-02 9.5 2000-01-01 135
2000-01-03 7.3 2000-01-01 58
2000-01-04 0.2 2000-01-01 38

这是我的代码。
  ggplot(rain,aes(x=DATE,y=value)) + 
geom_bar(stat = 'identity')+
scale_y_reverse()+
geom_line(data =discharge,aes(x=DATE,y=value))

但是我不知道如何在两个不同的Y轴上表示这些值。

最佳答案

在ggplot中,可以使用sec_axis()函数显示第二个轴,该轴是第一个轴的变换。由于可以使用分水岭区域将降水量转换为一定体积(或将排放量转换为深度),因此可以使用sec_axis制作hytograph。

library(ggplot2)
library(readr)

df <- read_csv("date, precip_in, discharge_cfs
2000-01-01, 13.2, 150
2000-01-02, 9.5, 135
2000-01-03, 7.3, 58
2000-01-04, 0.2, 38")

watershedArea_sqft <- 100

# Convert the precipitation to the same units as discharge. These steps will based on your units
df$precip_ft <- df$precip_in/12
df$precip_cuft <- df$precip_ft * watershedArea_sqft

# Calculate the range needed to avoid having your hyetograph and hydrograph overlap
maxRange <- 1.1*(max(df$precip_cuft) + max(df$discharge_cfs))

# Create a function to backtransform the axis labels for precipitation
precip_labels <- function(x) {(x / watershedArea_sqft) * 12}

# Plot the data
ggplot(data = df,
aes(x = date)) +
# Use geom_tile to create the inverted hyetograph. geom_tile has a bug that displays a warning message for height and width, you can ignore it.
geom_tile(aes(y = -1*(precip_cuft/2-maxRange), # y = the center point of each bar
height = precip_cuft,
width = 1),
fill = "gray50",
color = "white") +
# Plot your discharge data
geom_line(aes(y = discharge_cfs),
color = "blue") +
# Create a second axis with sec_axis() and format the labels to display the original precipitation units.
scale_y_continuous(name = "Discharge (cfs)",
sec.axis = sec_axis(trans = ~-1*(.-maxRange),
name = "Precipitation (in)",
labels = precip_labels))

Example hyeto-hydrograph

关于r - 如何使用ggplot绘制R中的降雨径流图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42057832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com