R 设置条形图之间的固定间距

R 设置条形图之间的固定间距,r,ggplot2,R,Ggplot2,我有这个代码来绘制我的图形,但我需要在x轴上设置一个固定距离的断点 我需要如何更改此代码 data1 <- as.matrix(read.table('$INPUT_FILE1', header = T)); data1.experiment <- as.numeric(data1[,\"Experiment\"]); data1.obs <- as.numeric(data1[,\"Mean\"]); data1.method <- as.factor(data1[,\

我有这个代码来绘制我的图形,但我需要在x轴上设置一个固定距离的断点

我需要如何更改此代码

data1 <- as.matrix(read.table('$INPUT_FILE1', header = T));
data1.experiment <- as.numeric(data1[,\"Experiment\"]);
data1.obs <- as.numeric(data1[,\"Mean\"]);
data1.method <- as.factor(data1[,\"Method\"]);
df <- data.frame(data1.experiment, data1.method, data1.obs);
orderlist = c("5", "10", "20", "40", "60", "80");
ggplot(df, aes(x = data1.experiment, y = data1.obs, fill = data1.method), ylim=c(0,   380))+geom_bar(stat='identity', position='dodge')+labs(x='$xlabel',y='$ylabel',   fill='')+scale_fill_manual(values = c('indianred3','skyblue'), labels = c('DTB-MAC',   'IEEE802.11P'))+scale_y_continuous(limits = c(0, 380))+theme_bw()+theme(      panel.grid.major = element_line(colour = 'grey'), panel.border = element_rect(colour =   'black'), axis.line = element_blank(), panel.background = element_blank(),   legend.direction='horizontal', legend.position = c(0, 1), legend.justification = c(0, 1),   legend.background = element_rect(colour = NA));

我需要的结果是x轴,标题为
5,10,20,40,60,80
,但它们之间的间距相同。

您只需将x值设置为一个因子即可

这是你的数据

data1<-data.frame(
    Experiment = c(5, 10, 20, 40, 60, 80, 5, 
10, 20, 40, 60, 80), 
    Method = c("IEEE802.11P", "IEEE802.11P", "IEEE802.11P", 
    "IEEE802.11P", "IEEE802.11P", "IEEE802.11P", "DTB-MAC", 
    "DTB-MAC", "DTB-MAC", "DTB-MAC", "DTB-MAC", "DTB-MAC"), 
    Mean = c(73.692058824, 36.846029412, 109.911111111, 
    238.427111111, 326.812469136, 372.041388889, 7.470588235, 
    27.014705882, 84.032148148, 177.680148148, 244.599555556, 
    286.52462963)
)
得到


您的某个地方缺少引号。我们无法访问您的数据,因此无法确切知道绘制的内容。另外,你的代码中似乎有奇怪的转义,这会使复制和粘贴到R中变得困难。请编辑你的问题,使其包含一个我不知道到底是什么问题,但当我将x设置为因子R时,在x轴上放置5个断点,在40之后,不按顺序。然后听起来你的实验值可能是一些字符原因?您正确导入了吗?您可以使用上面定义的
orderlist
变量显式设置
因子(Experiement,levels=orderlist)
data1<-data.frame(
    Experiment = c(5, 10, 20, 40, 60, 80, 5, 
10, 20, 40, 60, 80), 
    Method = c("IEEE802.11P", "IEEE802.11P", "IEEE802.11P", 
    "IEEE802.11P", "IEEE802.11P", "IEEE802.11P", "DTB-MAC", 
    "DTB-MAC", "DTB-MAC", "DTB-MAC", "DTB-MAC", "DTB-MAC"), 
    Mean = c(73.692058824, 36.846029412, 109.911111111, 
    238.427111111, 326.812469136, 372.041388889, 7.470588235, 
    27.014705882, 84.032148148, 177.680148148, 244.599555556, 
    286.52462963)
)
library(ggplot2)
ggplot(data1, aes(x = factor(Experiment), y = Mean, fill =factor(Method))) +
    ylim(c(0,380)) +
    geom_bar(stat='identity', position='dodge')+
    labs(x='$xlabel',y='$ylabel',   fill='')+
    scale_fill_manual(values = c('indianred3','skyblue'), labels = c('DTB-MAC',   'IEEE802.11P'))+
    scale_y_continuous(limits = c(0, 380))+
    theme_bw()+
    theme(
        panel.grid.major = element_line(colour = 'grey'),
        panel.border = element_rect(colour =   'black'), 
        axis.line = element_blank(), 
        panel.background = element_blank(),
        legend.direction='horizontal',
        legend.position = c(0, 1), legend.justification = c(0, 1),
        legend.background = element_rect(colour = NA));