gpt4 book ai didi

r - 使用 ggplot 绘制深度剖面

转载 作者:行者123 更新时间:2023-12-05 05:27:21 25 4
gpt4 key购买 nike

我正在尝试找出绘制多个深度剖面图的最佳方法,其中深度为 y 轴(显然),盐度和温度为 x 轴。

它仅适用于温度,按日期对图表进行分面。但我想在我的个人资料中包含盐度。问题是,由于温度值在 0 到 2°C 之间,而盐度总是 >34,我将不得不使用不同的尺度。我想不出一个好方法来绘制两个变量在几个日期的深度。

在这种情况下,我非常感谢您的帮助。我用来绘制没有盐度的配置文件的代码是这样的:

scatter  <- ggplot(profile, aes(Temp, Depth, colour = Date))

scatter + geom_point(size = 1.5) +
labs(x = "Temperature [°C]", y = "Depth [m]", colour = "Date") +
facet_wrap(~ Date,ncol=5, scales="fixed") +
scale_y_reverse() +
scale_color_discrete(guide="none") +
theme(plot.title = element_text(size = 18, vjust = 1)) +
theme(axis.text.x = element_text(size = 5, angle = 0, colour = 1)) +
theme(axis.text.y = element_text(size = 14, colour = 1)) +
theme(axis.title.x = element_text(size = 18, vjust = -0.5)) +
theme(axis.title.y = element_text(size = 18, angle = 90, vjust = 0.3)) +
theme(axis.line = element_line(size = 0)) +
theme(axis.ticks = element_line(size = 0.1))

如果没有办法用ggplot做呢?其他可能的解决方案?

最佳答案

编辑:我意识到这不能解决您的问题。但是,您的代码确实帮助我解决了我的问题。因此,我将研究如何将其扩展到分面。您还应该包括您的数据。

我有解决这个问题的办法。我一直在为一个类(class)研究深度概况。我发现如果你不小心,你会把事情搞得一团糟。为了我的示例,我已将其缩小到一个图形。我还将包含我的数据框。

数据框

        date station depth   abs     conc
1 9/28/2019 S4.5 0 0.049 36.69231
2 9/28/2019 S4.5 10 0.049 36.69231
3 9/28/2019 S4.5 20 0.054 40.53846
4 9/28/2019 S4.5 30 0.054 40.53846
5 9/28/2019 S4.5 40 0.056 42.07692
6 9/28/2019 S4.5 50 0.062 46.69231
7 9/28/2019 S4.5 75 0.065 49.00000
8 9/28/2019 S4.5 100 0.085 64.38462
9 9/28/2019 S4.5 125 0.094 71.30769
10 9/28/2019 S4.5 150 0.089 67.46154

请注意标题 "date","station","depth","abs","conc"

#treat conc as a function of depth and then reverse later
ggplot(data,aes(x=depth,y=conc))+
#set up the asthetics, the line must be broken because this is technically discrete data
geom_line(color="red",size=1, linetype=2)+
geom_point()+
#reverse depth so it starts at zero
scale_x_reverse()+
#put the y axis labes on the opposite side so when its flipped it will appear at top
scale_y_continuous(position="right")+
#this is how you reverse the look and order or the coordinates for the graph
coord_flip()

objectgenerated

我发现,如果您正在进行其他转换,通过简单地反转 y 比例尺,您的行为会改变数据的投影方式。根据我的类(class)需要添加的一些内容是顶部的值从 0 开始。为此,您需要为“x”轴设置一个限制。这是通过向坐标翻转添加参数来完成的。

...
#The order of the y lim matters! the vector must be ordered first value last value
coord_flip(ylim = c(<yourfirstvalue>,<yourlastvalue>))
...

with ylim arguement据我所知,其他转换不会以对我的标记有意义的方式投影数据。如果其他人对此问题的解决方案有更好的描述,请随时纠正我。

关于r - 使用 ggplot 绘制深度剖面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19754365/

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