Questions tagged «ggplot2»

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

9
左对齐两个图形边缘(ggplot)
我正在使用ggplot,并且有两个图形要彼此叠加显示。我使用grid.arrangegridExtra来堆叠它们。问题是我希望图形的左边缘与右边缘对齐,而与轴标签无关。(出现问题是因为一个图形的标签较短而另一个图形的标签较长)。 问题: 我该怎么做?我没有嫁给grid.arrange,但ggplot2是必须的。 我尝试过的方法: 我尝试使用宽度和高度以及ncol和nrow来制作2 x 2网格,并将视觉效果放置在相对的角上,然后使用宽度进行播放,但是我无法在相对的角落获得视觉效果。 require(ggplot2);require(gridExtra) A <- ggplot(CO2, aes(x=Plant)) + geom_bar() +coord_flip() B <- ggplot(CO2, aes(x=Type)) + geom_bar() +coord_flip() grid.arrange(A, B, ncol=1)
105 r  ggplot2  gridextra  gtable 

6
如何使用变量在ggplot中指定列名称
我有一个ggplot命令 ggplot( rates.by.groups, aes(x=name, y=rate, colour=majr, group=majr) ) 在函数内部。但是我希望能够使用函数的参数来选择要用作颜色和组的列。即我想要这样的东西 f <- function( column ) { ... ggplot( rates.by.groups, aes(x=name, y=rate, colour= ??? , group=??? ) ) } 因此,ggplot中使用的列由参数确定。例如,对于f(“ majr”),我们得到 ggplot( rates.by.groups, aes(x=name, y=rate, colour=majr, group=majr) ) 但是对于f(“ gender”),我们得到 ggplot( rates.by.groups, aes(x=name, y=rate, colour=gender, group=gender) ) 我尝试过的一些事情: ggplot( rates.by.groups, aes(x=name, y=rate, …
105 r  ggplot2  r-faq 

7
从ggplot2中删除网格,背景色以及上下边框
我想通过使用ggplot2在下面立即复制该图。我可以靠近,但不能删除上下边框。下面,我介绍使用ggplot2的几种尝试,包括在Stackoverflow上或通过Stackoverflow找到的一些建议。不幸的是,我无法获得这些建议。 我希望有人可以纠正下面的一个或多个代码片段。 感谢您的任何建议。 # desired plot a <- seq(1,20) b <- a^0.25 plot(a,b, bty = "l") library(ggplot2) df <- as.data.frame(cbind(a,b)) # 1. ggplot2 default ggplot(df, aes(x = a, y = b)) + geom_point() # 2. removes background color ggplot(df, aes(x = a, y = b)) + geom_point() + opts(panel.background = …
103 r  ggplot2 

8
如何添加纹理以填充ggplot2中的颜色
我目前正在使用scale_brewer()填充纸,它们的颜色看上去很漂亮(在屏幕上和通过彩色打印机),但是在使用黑白打印机时,它们的打印效果相对均匀,为灰色。我搜索了在线ggplot2文档,但没有看到有关添加纹理以填充颜色的任何信息。有官方的ggplot2方法可以做到这一点,还是有人可以使用骇客?通过纹理,我指的是对角线,反向对角线,点图案等东西,当以黑白打印时,它们可以区分填充颜色。
103 r  ggplot2 

3
ggplot2如何处理“类不合法的数据”错误?
尝试将新行覆盖到现有ggplot时,出现以下错误: Error: ggplot2 doesn't know how to deal with data of class uneval 我的代码的第一部分工作正常。下图是来自美国中西部电力市场的“最新”每小时风力发电数据。 现在,我想用红色覆盖最后两天的观测值。这应该很容易,但是我无法弄清楚为什么会出错。 任何帮助将不胜感激。 以下是可重现的示例: # Read in Wind data fname <- "https://www.midwestiso.org/Library/Repository/Market%20Reports/20130510_hwd_HIST.csv" df <- read.csv(fname, header=TRUE, sep="," , skip=7) df <- df[1:(length(df$MKTHOUR)-5),] # format variables df$MWh <- as.numeric(df$MWh) df$Datetime <- strptime(df$MKTHOUR, "%m/%d/%y %I:%M %p") # Create some …
101 r  ggplot2 


4
如何在ggplot2中使用希腊符号?
我的类别需要用希腊字母命名。我正在使用ggplot2,它可以很好地处理数据。不幸的是,我无法弄清楚如何将这些希腊符号放在x轴上(在刻度线处)并使它们出现在图例中。有什么办法吗? 更新:我看了一下链接,但是,没有描述好的方法来完成我想做的事情。
101 r  graphics  unicode  utf-8  ggplot2 

3
如何处理facet_grid图的条形文本?
我想知道如何在多面图中绘制带状文字的大小。我的问题类似于关于情节标题的问题,但是我特别关心的不是操纵情节标题,而是操纵刻面标题(strip_h)中出现的文本。 例如,考虑mpg数据集。 library(ggplot2) qplot(hwy, cty, data = mpg) + facet_grid( . ~ manufacturer) 产生的输出会产生一些带状标题,这些标题不适合该区域。 我认为必须有一种方法grid来处理带状文本。但是我还是一个新手,从哈德利的书的grid附录中不确定该怎么做。另外,我担心如果做错了,会损坏洗衣机,因为我相信所有技术都是通过The Force连接的:-( 提前谢谢了。
100 r  ggplot2 

4
ggplot2保留未使用的级别barplot
我想在条形图中绘制未使用的电平(即计数为0的电平),但是,未使用的电平被丢弃,我无法弄清楚如何保持它们 df <- data.frame(type=c("A", "A", "A", "B", "B"), group=rep("group1", 5)) df$type <- factor(df$type, levels=c("A","B", "C")) ggplot(df, aes(x=group, fill=type)) + geom_bar() 在上面的示例中,我想看到C的计数为0,但它完全不存在... 感谢您的帮助Ulrik 编辑: 这就是我想要的 df <- data.frame(type=c("A", "A", "A", "B", "B"), group=rep("group1", 5)) df1 <- data.frame(type=c("A", "A", "A", "B", "B", "A", "A", "C", "B", "B"), group=c(rep("group1", 5),rep("group2", 5))) df$type <- …
100 r  ggplot2  legend  levels 

2
如何使用ggplot2在R中的每个条形图上在geom_bar上放置标签
我发现了如何使用ggplot2在R中的geom_bar上放置标签放置标签,但是它只是将label(numbers)放在一个栏中。 假设这是每个x轴的两个条形,该怎么做? 我的数据和代码如下所示: dat <- read.table(text = "sample Types Number sample1 A 3641 sample2 A 3119 sample1 B 15815 sample2 B 12334 sample1 C 2706 sample2 C 3147", header=TRUE) library(ggplot2) bar <- ggplot(data=dat, aes(x=Types, y=Number, fill=sample)) + geom_bar(position = 'dodge') + geom_text(aes(label=Number)) 然后,我们将获得: 似乎数字文本也位于“躲避”模式中。我搜索了geom_text手册以查找一些信息,但是无法使其正常工作。 有什么建议吗?
99 r  ggplot2  bar-chart 

6
在ggplot2中的qplot()和ggplot()之间进行选择
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 改善这个问题 我开始使用很棒的ggplot2程序包在R中进行绘图,而在每次绘图之前我问自己的第一件事就是“好吧,我会使用qplot还是ggplot?”。 我了解这qplot提供了一种更简单的语法,同时又提供了ggplot最大的功能和灵活性,但是您最常使用的功能是什么,每个功能都有确切的用例吗?您主要使用qplot且ggplot仅用于复杂地块,还是ggplot每次都使用? 感谢您的反馈意见 !
98 r  ggplot2 

1
将geom_text放在闪避的barplot上
我试图使标题变得不言自明,但是这里是-数据优先: dtf <- structure(list(variable = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 5L, 5L), .Label = c("vma", "vla", "ia", "fma", "fla"), class = "factor"), ustanova = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("srednja škola", "fakultet"), class = "factor"), `(all)` = c(42.9542857142857, 38.7803203661327, 37.8996138996139, …
96 r  plot  ggplot2  bar-chart 

2
固定ggplot中的构面顺序
数据: df <- data.frame( type = c("T", "F", "P", "T", "F", "P", "T", "F", "P", "T", "F", "P"), size = c("50%", "50%", "50%", "100%", "100%", "100%", "150%", "150%", "150%", "200%", "200%", "200%"), amount = c(48.4, 48.1, 46.8, 25.9, 26, 24.9, 21.1, 21.4, 20.1, 20.8, 21.5, 16.5) ) 我需要使用ggplot(x轴-> type,y轴-> amount,分组依据size)绘制上述数据的条形图。当我使用以下代码时,我没有得到变量type以及size数据中显示的顺序。请看下图。我为此使用了以下代码。 …
96 r  ggplot2  sequence  facet 

3
如何更改由ggplot2制作的图的背景色
默认情况下,ggplot2生成带有灰色背景的图。如何更改绘图背景的颜色? 例如,由以下代码生成的图: library(ggplot2) myplot<-ggplot(data=data.frame(a=c(1,2,3), b=c(2,3,4)), aes(x=a, y=b)) + geom_line() myplot
95 r  ggplot2 

4
如何获得ggplots的“不平衡”网格?
通过使用以下命令,grid.arrange我可以ggplot在网格中排列多个图形以实现多面板图形: library(ggplot2) library(grid) library(gridExtra) 生成一些ggplot2图,然后 plot5 <- grid.arrange(plot4, plot1, heights=c(3/4, 1/4), ncol=1, nrow=2) 如何获得“不平衡”的2列布局,整个第一个列中有一个图,第二个列中有三个图?我通过尝试用grid.arrange一个网格(例如plot5上面的图)相对于另一个图绘制一个“网格”方法,但获得了: 排列错误(...,as.table = as.table,clip = clip,main = main,:输入必须是grobs! 更新: 谢谢你的建议。我将调查viewports和grid。同时,感谢@​​ DWin,layOut'wq'包中的函数对于我Sweave文档中的编译图非常有效: 更新2: 该arrangeGrob命令(由@baptiste建议)也可以很好地工作,并且看起来非常直观-至少很容易更改两列的宽度。它还具有不需要`wq'软件包的好处。 例如,这是我的Sweave文件中的代码: <<label=fig5plot, echo=F, results=hide>>= plot5<-grid.arrange(plot4, arrangeGrob(plot1, plot2, plot3, ncol=1), ncol=2, widths=c(1,1.2)) @ \begin{figure}[] \begin{center} <<label=fig5,fig=TRUE,echo=T, width=10,height=12>>= <<fig5plot>> @ \end{center} \caption{Combined plots using the `arrangeGrob' …
94 r  ggplot2  r-grid 

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.