轴上所有点之间的距离相等

luk*_*kas 7 r scatter-plot ggplot2

我试图绘制一个像这样的简单散点图: 在此输入图像描述

我用于生成此图的最小代码如下:

ggplot(fig1c, aes(x=xvar, y=yvar)) +    
  scale_x_log10(breaks=unique(fig1c$xvar)) +
  scale_y_continuous(breaks=seq(0, 10, by=1), labels=as.character(seq(0, 10, by=1))) +   
  geom_point(aes(fill=Method, color=Method, shape=Method), size = 5, guides=FALSE) + 
  scale_colour_brewer(palette="Set1") + 
  geom_line(aes(fill=Method, color=Method)) +
Run Code Online (Sandbox Code Playgroud)

我想要实现的是让x轴上的所有点(5884,13957,...)等间距.即我希望点5884和13957之间的间隔与13957和21013之间的大小相同,依此类推.有帮助吗?

谢谢

Nad*_*ons 3

您可能希望将 x 值转换为因子。现在,R 假设您的 x 值是数字,因此在它们之间放置适当的空格(5,884 和 13,957 之间的差异大于 21,013 和 28,708 之间的差异)。但是,您可能会将这些数字视为数据点的名称。如果您告诉 R 将数字视为因子或文本,它将在它们之间放置相等的间距。

ggplot(fig1c, aes(x=as.factor(xvar), y=yvar)) +    
  scale_x_log10(breaks=unique(fig1c$xvar)) +
  scale_y_continuous(breaks=seq(0, 10, by=1), labels=as.character(seq(0, 10, by=1))) +   
  geom_point(aes(fill=Method, color=Method, shape=Method), size = 5, guides=FALSE) + 
  scale_colour_brewer(palette="Set1") + 
  geom_line(aes(fill=Method, color=Method)) +
Run Code Online (Sandbox Code Playgroud)