相关疑难解决方法(0)

ggplot中的分组条形图

我有一个调查文件,其中行是观察和列问题.

以下是一些假数据:

People,Food,Music,People
P1,Very Bad,Bad,Good
P2,Good,Good,Very Bad
P3,Good,Bad,Good
P4,Good,Very Bad,Very Good
P5,Bad,Good,Very Good
P6,Bad,Good,Very Good
Run Code Online (Sandbox Code Playgroud)

我的目标是创造这种情节ggplot2.

  • 我绝对不关心颜色,设计等.
  • 该图与假数据不对应

在此输入图像描述

这是我的假数据:

raw <- read.csv("http://pastebin.com/raw.php?i=L8cEKcxS",sep=",")
raw[,2]<-factor(raw[,2],levels=c("Very Bad","Bad","Good","Very Good"),ordered=FALSE)
raw[,3]<-factor(raw[,3],levels=c("Very Bad","Bad","Good","Very Good"),ordered=FALSE)
raw[,4]<-factor(raw[,4],levels=c("Very Bad","Bad","Good","Very Good"),ordered=FALSE)
Run Code Online (Sandbox Code Playgroud)

但是,如果我选择Y作为计数,那么我将面临一个关于选择X和Group值的问题......我不知道我是否能够成功而不使用reshape2...我也厌倦了使用具有融化功能的重塑.但我不明白如何使用它...

r bar-chart ggplot2 reshape reshape2

45
推荐指数
1
解决办法
15万
查看次数

注释条形上方的值(ggplot刻面)

我最喜欢的基本图形技巧之一是Bill Dunlap的拾音器.能够在条形图中将数值(或任何值)放置在条形图上方(我不会使用它但偶尔会喜欢它).

mtcars2 <- mtcars[order(-mtcars$mpg), ]
par(cex.lab=1, cex.axis=.6, 
    mar=c(6.5, 3, 2, 2) + 0.1, xpd=NA) #shrink axis text and increas bot. mar.

barX <- barplot(mtcars2$mpg,xlab="Cars", main="MPG of Cars", 
   ylab="", names=rownames(mtcars2), mgp=c(5,1,0),
   ylim=c(0, 35), las=2, col=mtcars2$cyl)

mtext(side=2, text="MPG", cex=1, padj=-2.5)
text(cex=.5, x=barX, y=mtcars2$mpg+par("cxy")[2]/2, mtcars2$hp, xpd=TRUE) 
Run Code Online (Sandbox Code Playgroud)

哪个给你:

在此输入图像描述

我希望能够在ggplot中使用多面条形图进行相同类型的注释.显然,这些值也必须是你所绘制的相同的两个变量,所以你可以用ftable获得它们.我想把下面的ftable结果(对于非零值)并将它们放在各自的条形图上方.

library(ggplot2)
mtcars2 <- data.frame(id=1:nrow(mtcars), mtcars[, c(2, 8:11)])
mtcars2[, -1] <- lapply(mtcars2[, -1], as.factor)

with(mtcars2, ftable(cyl, gear, am))

ggplot(mtcars2, aes(x=cyl)) + geom_bar() + 
    facet_grid(gear~am)
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎很难,但也许它比我想象的要容易.提前感谢您考虑此问题.

r ggplot2

21
推荐指数
1
解决办法
9475
查看次数

在格子条形图功能中获取分组条的中点值

我试图弄清楚如何确定分组条的中点值,即每个条的中心的实际X位置.这是很容易在基础R完成barplot功能,但是我希望能够做到这一点的格子barchart.我的目标是在相应的栏顶部显示文本列的值.

只要我不使用子组,下面的代码允许我将文本放在条形图的顶部.我试过在互联网上搜索解决方案,但似乎没有任何效果.从图中可以看出,中点仅针对整个组的中心确定.

谢谢!

library(lattice)

test= data.frame(
  group=c("WK 1", "WK 1", "WK 1",  "WK 2", "WK 2", "WK 2", "WK 3", "WK 3", "WK 3"),
  subgroup=c(1,2,3,1,2,3,1,2,3)  ,
  percent=c(60,50,80,55,56,65,77,65,86),
  text=c("n=33", "n=37","n=39","n=25","n=27","n=22","n=13","n=16","n=11")
  )

barchart(data=test, 
         percent~group,
         groups=subgroup,

            panel = function(x,y,...){
              panel.barchart(x, y, ...)
              panel.text( x=unique(test$group), 
                          y=test$percent, 
                          label=unique(test$text) 
                          )

            }
         )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r lattice

7
推荐指数
1
解决办法
1333
查看次数

使用ggplot2在各个条上对齐数字

我想在下图中的个人条上显示数字.

df <- structure(list(A = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L,
3L), .Label = c("0-50,000", "50,001-250,000", "250,001-Over"), class = "factor"),
    B = structure(c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L), .Label = c("0-50,000",
    "50,001-250,000", "250,001-Over"), class = "factor"), Freq = c(0.507713884992987,
    0.258064516129032, 0.23422159887798, 0.168539325842697, 0.525280898876405,
    0.306179775280899, 0.160958904109589, 0.243150684931507,
    0.595890410958904)), .Names = c("A", "B", "Freq"), class = "data.frame", row.names = c(NA,
-9L))

library(ggplot2)
p <- ggplot(data=df, aes(x=A, y=Freq))+
            geom_bar(aes(fill=B), position=position_dodge()) + theme_bw()
p <- p + scale_y_continuous(formatter="percent")
p …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

6
推荐指数
1
解决办法
4090
查看次数

在 ggplot 中,如何仅打印条形图中特定条形上方的计数?

我发现并被引导到许多帖子,显示如何将统计数据放置在 ggplot 中条形图的所有条形上方,但我还没有找到一个显示如何仅显示条形图中一个条形上方的计数/百分比的帖子。

例如下面的图:

ggplot(mtcars, aes(x = gear)) + geom_bar() +
  geom_text(stat='count',aes(label=..count..),vjust=-1)
Run Code Online (Sandbox Code Playgroud)

mtcars 条形图

我怎样才能在中间栏上方打印“12”并禁止打印“5”和“15”。我想显示上面计数的条形图会因图而异(例如,在另一个图中,我想显示 5 个条形图中第四大条形上方的统计数据)。

r bar-chart ggplot2

3
推荐指数
1
解决办法
2776
查看次数

标签 统计

r ×5

ggplot2 ×4

bar-chart ×2

lattice ×1

reshape ×1

reshape2 ×1