如何将列更改为连续数据以在 ggplot2 上绘制它?

how to change a column to continuous data to plot it on ggplot2?

您好,我无法绘制三种不同动物的代谢物随时间减少的图。

这是我用于情节的代码:

all_met %>% 
  pivot_longer(c(Inosine mp),names_to="Metabolites",values_to="concentration") %>%
  group_by(Animal,Day, Metabolites) %>%   
  summarise(mean = mean(concentration), sd = sd(concentration)) %>%   
  ggplot(aes(x=factor(Day),y= mean, group = Animal, colour = Animal)) +   
  geom_point()+   
  geom_smooth(method=lm, se = FALSE, formula =  y~x)+   
  stat_regline_equation() 

这给了我:

你可以看到 x 轴是均匀分布的,但我不希望这样...从我用谷歌搜索的内容来看,假设我的数据是离散的,但我不能使用 scale_x_continuous 所以我想知道如何解决它。

我也想添加 R^2 值,但它与方程重叠,因此还有办法将方程移动到绘图的其他位置吗?

数据

structure(list(Animal = c("Beef", "Beef", "Beef", "Beef", "Beef", 
"Beef", "Beef", "Beef", "Beef", "Beef", "Beef", "Beef", "Beef", 
"Beef", "Beef", "Beef", "Beef", "Beef", "Beef", "Beef", "Beef", 
"Beef", "Beef", "Beef", "Beef", "Beef", "Beef", "Beef", "Beef", 
"Beef", "Beef", "Beef", "Beef", "Beef", "Beef", "Beef", "Lamb", 
"Lamb", "Lamb", "Lamb", "Lamb", "Lamb", "Lamb", "Lamb", "Lamb", 
"Lamb", "Lamb", "Lamb", "Lamb", "Lamb", "Lamb", "Lamb", "Lamb", 
"Lamb", "Lamb", "Lamb", "Lamb", "Lamb", "Lamb", "Lamb", "Lamb", 
"Lamb", "Lamb", "Lamb", "Venison", "Venison", "Venison", "Venison", 
"Venison", "Venison", "Venison", "Venison", "Venison", "Venison", 
"Venison", "Venison", "Venison", "Venison", "Venison", "Venison",
"Venison", "Venison", "Venison", "Venison", "Venison", "Venison", 
"Venison", "Venison", "Venison", "Venison", "Venison", "Venison", 
"Venison", "Venison", "Venison", "Venison", "Venison", "Venison",
"Venison", "Venison"), Day = c(0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
1, 1, 3, 3, 3, 3, 3, 3, 5, 5, 5, 5, 5, 5, 7, 7, 7, 7, 7, 7, 9, 
9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 
3, 5, 5, 5, 5, 5, 5, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0.25, 0.25, 
0.25, 0.25, 0.25, 0.25, 0.79, 0.79, 0.79, 0.79, 0.79, 0.79, 0.125, 
0.125, 0.125, 0.125, 0.125, 0.125, 1.75, 1.75, 1.75, 1.75, 1.75, 
1.75, 2.25, 2.25, 2.25, 2.25, 2.25, 2.25)), row.names = c(NA, 
-100L), class = c("tbl_df", "tbl", "data.frame"))

因为您将 x 声明为一个因子 (x=factor(Day)),您的 x 轴是离散的而不是连续的(即数字)。去掉因子函数,你会得到一个连续的轴。