我正在试图找出在y轴上绘制多个深度剖面的最佳方法(显然)和x轴上的盐度和温度。
只需温度即可正常工作,按日期分割图表。但我想在我的个人资料中加入Salinity。问题是,当温度值在0到2°C之间且盐度总是> 34时,我将不得不使用不同的比例。 我无法找到一个好方法来绘制几个日期的深度变量。
在这种情况下,我真的很感激帮助。 我用于绘制没有Salinity的配置文件的代码是:
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无法做到这一点?其他可能的解决方案?
答案 0 :(得分:0)
编辑:我知道这不是解决您问题的方法。但是,您的代码确实帮助我解决了我的问题。因此,我将研究如何将其扩展到多方面。您还应该包括您的数据。
我有解决此问题的方法。 我一直在为一个班级研究深度剖面。我发现,如果不小心,您可能会弄糟。为了我的示例,我将其缩小为一个图形。我还将包括我的数据框。
数据框
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()
我发现,通过简单地反转y比例,您就可以进行一些行为,这些行为可以改变您在进行其他转换时如何投影数据。 根据我的课程的要求,某些附加项的值开头应从0开始。为此,您需要为“ x”轴设置一个限制。这是通过向坐标翻转添加参数来完成的。
...
#The order of the y lim matters! the vector must be ordered first value last value
coord_flip(ylim = c(<yourfirstvalue>,<yourlastvalue>))
...