在 R studio 中绘制一个线图,其 x 轴先向下然后向上

问题描述 投票:0回答:2

我在大学接到一项任务,要根据我们收集的一些数据制作带有标准误差条的平均值折线图。该实验测量了改变温度时丰年虾每分钟的节拍(有些虾挨饿,有些虾被喂食 - 我在这里只包含饥饿的数据,因为一旦我弄清楚如何为喂食的虾制作一个单独的图表)到)。我们以 2 摄氏度的增量进行温度测量,从 20 摄氏度降至 6 摄氏度,然后回到 20 摄氏度。该数据名为 starved2_0,其中包括温度、每分钟平均心跳和数据的标准误差。 理想情况下,我希望有一个图表,其中 x 轴从 20->6->20 读取,但不知道如何做到这一点。

数据

temperature<-c(20,18,16,14,12,10,8,10,12,14,16,18,20)
mean<-c(104.50,113.89,103.16,89.57,82.63,77.95,74.41,71.29,76.10,83.71,86.58,100.40,104.39,130.31,111.00)
se<-c(6.85,6.22,4.10,3.82,4.39,2.85,2.94,3.50,7.56,4.87,4.13,5.36,5.22,9.49,13.38)

这是我迄今为止尝试过的:

我在网上看到我可以这样写出我的数据点

x=c(20,18,16,14,12,10,8,6,8,10,12,14,16,18,20)
y=c(104.5,113.89,103.16,89.57,82.63,77.95,74.41,71.29,76.1,83.71,86.58,100.4,104.39,130.31,111)
ggplot(data.frame(x=1:length(x),y))+
  geom_point(aes(x=x, y=y))
ggplot(x,y)

这正确地绘制了我的数据,但 x 轴从 1->15,因为我有 15 个观察值,这不是我想要的。而且显然也没有标准误差线

然后我尝试了这个:

ggplot(starved2_0,aes(x=temp,y=mean))+
  geom_errorbar(aes(ymin=mean-se, ymax=mean+se),width=.1)+
  geom_line()+
  geom_point()

然后我尝试了这个,但这只是将每个温度的两个值放在一起,所以不是我想要的

r
2个回答
0
投票

我可能会误解您将温度值放在一起的意思,但是温度列中有重复的温度值。您提供的数据不包括 temp 列中的 15 个观测值,但在其他两列中包含 15 个值。这就是我处理你的数据时得到的结果。

temperature<-c(20,18,16,14,12,10,8,10,12,14,16,18,20,22,24)
mean<-c(104.50,113.89,103.16,89.57,82.63,77.95,74.41,71.29,76.10,83.71,86.58,100.40,104.39,130.31,111.00)
se<-c(6.85,6.22,4.10,3.82,4.39,2.85,2.94,3.50,7.56,4.87,4.13,5.36,5.22,9.49,13.38)
starved2_0<-data.frame(temperature,mean,se)

ggplot(starved2_0,aes(x=temperature,y=mean))+
  geom_errorbar(aes(ymin=mean-se, ymax=mean+se),width=.1)+
  geom_line()+
  geom_point()


0
投票

第二个代码对我来说看起来是正确的,您是否尝试过将 geom_errorbar() 部分放在最后?

ggplot(data = df,
   aes(x = col1, y = col2)) +
geom_line() +
geom_point() + 
geom_errorbar(aes(ymin = min, ymax = max),
              width=0.1)
© www.soinside.com 2019 - 2024. All rights reserved.