嗨,这个简单的代码(以及今天早上的所有脚本)已经开始在ggplot2中给我一个偏离中心的标题
Ubuntu version: 16.04
R studio version: Version 0.99.896
R version: 3.3.2
GGPLOT2 version: 2.2.0
Run Code Online (Sandbox Code Playgroud)
今天早上我刚刚安装了上面这个以试图解决这个问题....
dat <- data.frame(
time = factor(c("Lunch","Dinner"), levels=c("Lunch","Dinner")),
total_bill = c(14.89, 17.23)
)
# Add title, narrower bars, fill color, and change axis labels
ggplot(data=dat, aes(x=time, y=total_bill, fill=time)) +
geom_bar(colour="black", fill="#DD8888", width=.8, stat="identity") +
guides(fill=FALSE) +
xlab("Time of day") + ylab("Total bill") +
ggtitle("Average bill for 2 people")
Run Code Online (Sandbox Code Playgroud)
这是代码:
require(ggplot2)
require(grid)
# pdf("a.pdf")
png('a.png')
a <- qplot(date, unemploy, data = economics, geom = "line") + opts(title='A')
b <- qplot(uempmed, unemploy, data = economics) + geom_smooth(se = F) + opts(title='B')
c <- qplot(uempmed, unemploy, data = economics, geom="path") + opts(title='C')
grid.newpage()
pushViewport(viewport(layout = grid.layout(2, 2)))
vplayout <- function(x, y) viewport(layout.pos.row = x, layout.pos.col = y)
print(a, vp = vplayout(1, 1:2))
print(b, vp = vplayout(2, 1))
print(c, vp = vplayout(2, 2))
dev.off()
Run Code Online (Sandbox Code Playgroud)
结果:

虽然这是我想要的,即在y轴顶部附近定位标题:

我有一个网格图对象g.
class(g)
"gtable" "grob" "gDesc"
Run Code Online (Sandbox Code Playgroud)
我可以使用grid.draw(g)绘制情节.但是,我无法找到将绘图保存为pdf文件的方法.
我试过了:
ggsave(g, file="plot.png")
Run Code Online (Sandbox Code Playgroud)
但显然ggsave不适用于这样的对象.
以下是?grid.draw帮助页面中的示例:
grid.newpage()
## Create a graphical object, but don't draw it
l <- linesGrob()
## Draw it
grid.draw(l)
Run Code Online (Sandbox Code Playgroud)
绘图效果很好,但保存/打印会导致问题.
对此有任何解决方法吗?谢谢!
我在R中绘制了一个带ggplot2的图,我希望y轴的标题出现在图的左上角.请考虑以下代码以获取默认行为:
require(ggplot2)
xy = data.frame(x=1:10, y=10:1)
ggplot(data = xy) +
geom_point(aes(x = x, y = y)) +
ylab("very long label")
Run Code Online (Sandbox Code Playgroud)
这将生成以下图表:

我想移动并旋转文本"非常长的标签".我可以使用theme()函数做一些事情:
ggplot(data = xy) +
geom_point(aes(x = x, y = y)) +
ylab("very long label") +
theme(axis.title.y = element_text(angle = 0, vjust = 1.1, hjust = 10))
Run Code Online (Sandbox Code Playgroud)
这给了我这个:

您可以看到我的目的地,但边距不正确 - 左边距太大,因为空间是为旋转标签保留的,而上边距对于文本而言太小.
我怎么能告诉ggplot我想在那个位置没有旋转的y轴标题,并为它保留适当的空间?