Questions tagged «ggplot2»

ggplot2是Hadley Wickham根据“图形语法”的原则编写的,为R积极维护的开源图形绘图包。它部分替换了R的基本图和点阵包,同时提供了一个干净,强大,正交且有趣的API。

4
保存在闪亮的应用程序中绘制的图
我试图弄清楚如何使用downloadButton保存具有光泽的图。包中的示例演示了downloadButton / downloadHandler保存.csv的方法。我将基于此举一个可重复的示例。 对于 ui.R shinyUI(pageWithSidebar( headerPanel('Downloading Data'), sidebarPanel( selectInput("dataset", "Choose a dataset:", choices = c("rock", "pressure", "cars")), downloadButton('downloadData', 'Download Data'), downloadButton('downloadPlot', 'Download Plot') ), mainPanel( plotOutput('plot') ) )) 对于 server.R library(ggplot2) shinyServer(function(input, output) { datasetInput <- reactive({ switch(input$dataset, "rock" = rock, "pressure" = pressure, "cars" = cars) }) plotInput …
85 r  ggplot2  shiny 

4
完全移除facet_wrap标签
我想完全删除刻面的标签,以创建一种迷你图效果,对于观众来说,这些标签无关紧要,我能想到的最好的方法是: library(MASS) library(ggplot2) qplot(week,y,data=bacteria,group=ID, geom=c('point','line'), xlab='', ylab='') + facet_wrap(~ID) + theme(strip.text.x = element_text(size=0)) 因此,我可以完全摆脱(现在为空白)strip.background以便为“火花线”留出更多空间吗? 或者,对于像这样的大量二进制值时间序列,是否有更好的方法来获得这种“迷你图”效果?
84 r  graphics  ggplot2 

3
如何在ggplot2的构面中添加常规标签?
我经常会提供数值作为方面。我希望提供足够的信息来解释补充性标题中的这些构面值,类似于轴标题。标签程序选项会重复很多不必要的文本,并且不适用于较长的变量标题。 有什么建议么? 默认值: test<-data.frame(x=1:20, y=21:40, facet.a=rep(c(1,2),10), facet.b=rep(c(1,2), each=20)) qplot(data=test, x=x, y=y, facets=facet.b~facet.a) 我想要的是: 我在ggplot中能做的最好的事情: qplot(data=test, x=x, y=y)+facet_grid(facet.b~facet.a, labeller=label_both) 如@Hendy所示,类似于: 向ggplot2绘图添加辅助y轴-使其完美
82 r  label  facet  ggplot2 

2
如何使用ggplot2设置图例alpha
我有一个风速相对于方向的图表,该图表具有很大的点数,因此除了color = month外,还使用alpha = I(1/20) 这是代码示例: library(RMySQL) library(ggplot2) con <- dbConnect(...) wind <- dbGetQuery(con, "SELECT speed_w/speed_e AS ratio, dir_58 as dir, MONTHNAME(timestamp) AS month, ROUND((speed_w+speed_e)/2) AS speed FROM tablename;"); png("ratio-by-speed.png",height=400,width=1200) qplot(wind$dir,wind$ratio,ylim=c(0.5,1.5),xlim=c(0,360),color=wind$month,alpha=I(1/30),main="West/East against direction") dev.off() 这会产生一个不错的图形,但是我的问题是图例的alpha也是1/30,这使它不可读。有没有办法我可以强制图例改为1 alpha? 这是一个例子:
81 r  ggplot2 

4
设置ggplot限制的下限
是否可以仅设置连续刻度极限的下限?我想使所有图都基于0,而无需指定上限。 例如 + scale_y_continuous(minlim=0)
81 r  ggplot2 

4
如何抑制ggplot2图中的垂直网格线?
我正在构建一个条形图,其条形足以表示水平(x)的位置,因此我要避免绘制多余的垂直网格线。 我知道如何在opts()中设置次要网格线和主要网格线的样式,但是我一辈子都无法弄清楚如何仅抑制垂直网格线。 library(ggplot2) data <- data.frame(x = 1:10, y = c(3,5,2,5,6,2,7,6,5,4)) ggplot(data, aes(x, y)) + geom_bar(stat = 'identity') + opts( panel.grid.major = theme_line(size = 0.5, colour = '#1391FF'), panel.grid.minor = theme_line(colour = NA), panel.background = theme_rect(colour = NA), axis.ticks = theme_segment(colour = NA) ) 在这一点上,看起来我将不得不压制所有网格线,然后使用geom_hline()将它们绘制回去,这似乎有点痛苦(而且,还不清楚如何找到刻度线/主要网格线位置以馈送给geom_hline()。) 任何想法将不胜感激!
81 r  ggplot2 

4
ggplot2中的facet_wrap()和facet_grid()有什么区别?
我一直在阅读这ggplot2两个功能的文档。我想知道有什么区别,使用每个函数(facet_wrap()和facet_grid())的正确情况是什么。 library(ggplot2) p <- qplot(displ, hwy, data = mpg) p + facet_wrap(~ cyl) p + facet_grid(~ cyl) 我提供了这个小例子作为起点。差异似乎是包裹性的,使地块更具自治性,而网格使一个地块在一起。
80 r  ggplot2  facet-wrap 

3
脚本中的ggplot图不会显示在Rstudio中
我对Rstudio有一个奇怪的问题:如果脚本调用ggplot2函数来显示图,那么使用Source运行脚本不会生成图。如果我选择与整个脚本Ctrl+A,然后运行当前行或选择(Ctrl+Enter),然后剧情确实显示。同样,在控制台中键入绘图命令会产生正确的输出。 例如: library(ggplot2) p = ggplot(mtcars, aes(wt, mpg)) p + geom_point() 仅在粘贴到控制台中时才会产生输出,而在源中则不会产生输出。 关于此还有其他问题,但都无济于事: ggplot2 ggsave函数导致图形设备不正确显示绘图,声称该问题已在较新版本中解决,但尚未解决。 RStudio - ggplot打印和保存在脚本中多条曲线时不保存第一条曲线被关闭为重复,但它不仅是不重复的,但dev.off()解决办法不是没有工作(” Error in dev.off() : cannot shut down device 1 (the null device)“) 采购脚本时,如何使Rstudio显示图?我正在使用Rstudio 0.98.1062和R 3.1.1。
80 r  ggplot2  rstudio 


3
ggplot结合了来自不同data.frames的两个图
我想将来自两个不同data.frames的两个ggplots组合到一个绘图中。在下面,您将找到代码。我想结合图1&2或图3&4。 df1 <- data.frame(p=c(10,8,7,3,2,6,7,8), v=c(100,300,150,400,450,250,150,400)) df2 <- data.frame(p=c(10,8,6,4), v=c(150,250,350,400)) plot1 <- qplot(df1$v, df1$p) plot2 <- qplot(df2$v, df2$p, geom="step") plot3 <- ggplot(df1, aes(v, p)) + geom_point() plot4 <- ggplot(df2, aes(v, p)) + geom_step() 这必须很容易做到,但是以某种方式我无法使其正常工作。谢谢你的时间。
79 r  ggplot2 

1
错误:找不到功能“单位”
尝试修改主题设置时,此简单代码给出以下错误: library(ggplot2) theme_nogrid <- theme_set(theme_update( plot.margin=unit(c(.25, .25, .25, .25), "in"),)) Error in do.call(theme, list(...)) : could not find function "unit" R给我任何使用'unit'的元素的错误。其他任何不称为“单位”的设置都可以正常工作。我正在运行R v.2.15.2(64位Windows)。 我在网上广泛搜索了此问题,却一无所获。感谢您对问题的任何建议。
78 r  ggplot2 

6
在一个图中绘制多个箱线图
我将数据保存为.csv12列的文件。第2列到第11列(标记为F1, F2, ..., F11)features。Column one包含或label这些功能的。goodbad 我想将所有这11个特征中的一个boxplot与相对,但用或分开。到目前为止,我的代码是:labelgoodbad qplot(Label, F1, data=testData, geom = "boxplot", fill=Label, binwidth=0.5, main="Test") + xlab("Label") + ylab("Features") 但是,这仅F1针对label。 我的问题是:如何显示F2, F3, ..., F11对label在一个图表一些dodge position?我已将功能标准化,因此它们在[0 1]范围内处于相同比例。 测试数据可以在这里找到。我用手画了些东西来解释这个问题(见下文)。
77 r  plot  ggplot2  boxplot 

3
ggplot中的控制点边框厚度
使用ggplot时,我可以设置shape为21-25来获得对内部(fill)和边框(col)颜色具有独立设置的形状,如下所示: df <- data.frame(id=runif(12), x=1:12, y=runif(12)) ggplot(df, aes(x=x, y=y)) + geom_point(aes(fill=id, size=id), colour="black", shape=21) 但是,我无法弄清楚如何控制形状边界的厚度,无论是将其设置为绝对值还是将其设置为美观的贴图。我注意到,如果我设置一个lwd值,它将覆盖size美学: ggplot(df, aes(x=x, y=y)) + geom_point(aes(fill=id, size=id), colour="black", shape=21, lwd=2) 如何控制边框的厚度?
76 r  ggplot2  border  point  thickness 

7
在行尾绘制标签
我有以下数据(temp.dat有关完整数据,请参见结尾注释) Year State Capex 1 2003 VIC 5.356415 2 2004 VIC 5.765232 3 2005 VIC 5.247276 4 2006 VIC 5.579882 5 2007 VIC 5.142464 ... 我可以生成以下图表: ggplot(temp.dat) + geom_line(aes(x = Year, y = Capex, group = State, colour = State)) 我希望标签不是传说,而是 颜色与系列相同 每个系列的最后一个数据点的右侧 我在以下链接的答案中注意到baptiste的评论,但是当我尝试修改他的代码(geom_text(aes(label = State, colour = State, x …
76 r  ggplot2  legend 

2
在ggplot2中是否有内置的对数色标?
这是装箱密度图的示例: require(ggplot2) n <- 1e5 df <- data.frame(x = rexp(n), y = rexp(n)) p <- ggplot(df, aes(x = x, y = y)) + stat_binhex() print(p) 调整色阶以使中断以对数间隔很好,但是尝试一下 my_breaks <- round_any(exp(seq(log(10), log(5000), length = 5)), 10) p + scale_fill_hue(breaks = as.factor(my_breaks), labels = as.character(my_breaks)) 结果Error: Continuous variable () supplied to discrete scale_hue.似乎中断是期望因素(也许吗?),设计时考虑了分类变量? …
76 r  ggplot2 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.