1

我有以下代码来绘制一些东西。我也展示了结果。我的问题是,我希望线条与刻度线同步。

有什么建议吗?

谢谢你的时间。

g <- qplot(hora, puntual, colour=part, data=x, group=part) +
geom_line() +
geom_pointrange(aes(ymin = inf, ymax = sup)) +
scale_color_manual(values=c("red", "green")) + 
scale_y_continuous(breaks=seq(1, 55, 0.5)) + 
opts(panel.background = theme_rect(fill='white', colour='gray'))
jpeg("plot.jpg", width=800, height=800)
print(g)
dev.off()

追逐:这是我正在阅读的 DF(节选)

72000,   40.920,  44.478,
72010,   41.197,  42.212,
72020,   41.462,  41.893,
72030,   41.523,  41.759,
72045,   41.509,  41.725,
72050,   41.504,  41.719,
72055,   40.920,  44.478,

第一列是 X,第二列和第三列是 jpg 样本中以红色显示的间隔。

结果

4

1 回答 1

1

您的示例仍远未重现。当我们要求可重复性时,我们并没有试图变得困难。请记住,您是在要求随机的陌生人抽出时间(在周末!)来帮助您。尽可能多地预先完成工作对您来说是有礼貌的。如果我可以简单地复制+粘贴一些代码并在干净的 R 会话中运行它以查看发生了什么,我更有可能将时间花在这个问题上。这就是我的意思:

创建一些可重现的数据:

dat <- data.frame(x = 1:10,y = sample(10,10,replace = TRUE))

那是一条线,使回答者的生活变得更加轻松。我们要求人们提供可重现示例的另一个原因是,这样做通常会导致您解决自己的问题。

在我开发这个可重现的例子的过程中,我首先制作了这个图:

ggplot(dat,aes(x = x,y = y)) + 
    geom_point() + 
    scale_y_continuous(breaks = seq(1,10,0.5))

在此处输入图像描述

一切看起来都很好,对吧?但请注意,由于默认面板背景为灰色,因此网格线为白色。此时,您的脑海中应该响起警钟...

接下来我绘制了这个:

ggplot(dat,aes(x = x,y = y)) + 
    geom_point() + 
    scale_y_continuous(breaks = seq(1,10,0.5)) + 
    opts(panel.background = theme_rect(fill='white', colour='gray'))

在此处输入图像描述

请注意,“网格线”现在实际上不是网格线。它们是你theme_rect背景的边界。当您为 2D 对象指定颜色时会发生这种情况;边框是彩色的。

此时我意识到我们只需要重新着色网格线:

ggplot(dat,aes(x = x,y = y)) + 
    geom_point() + 
    scale_y_continuous(breaks = seq(1,10,0.5)) + 
    opts(panel.background = theme_rect(fill='white', colour='gray'),
         panel.grid.minor = theme_blank(),
         panel.grid.major = theme_line(colour = "grey80"))

在此处输入图像描述

我已经删除了次要网格线,theme_blank并简单地重新着色了主要网格线。他们一直都在那里,只是被画成白色!

所以这里的教训是,制作一个可重复的例子不仅仅是我们回答者懒惰......它也有利于你!:)

于 2012-06-16T20:39:44.660 回答