我正在使用具有离散x刻度的ggplot制作一个躲闪条形图,x轴现在按字母顺序排列,但我需要重新排列它以便按y轴的值排序(即,最高的条形将位于左侧).
我尝试了排序或排序,但结果是对x轴进行排序,而不是分别对条形进行排序.
我做错了什么?
我已经在这个论坛中查看了答案,但似乎无法找到这个具体问题的答案.我有以下数据,并希望创建一个条形图,其中条形按"值"从大到小排序,而不是按字母顺序排列:
breadth_data <- read.table(textConnection("Stakeholder Value
'Grantseekers' 0.90
'Donors' 0.89
'Community' 0.55
'Hurricane Relief Fund' 0.24
'Media' 0.19
'Employment Seekers' 0.12
'Affiliates' 0.10
'Youth' 0.09
'Women' 0.02
'Former Board Members' 0.01"), header=TRUE)
Run Code Online (Sandbox Code Playgroud)
然后是基本条形图:
c <- ggplot(breadth_data, aes(x=Stakeholder, y=Value))
c + geom_bar(stat="identity") + coord_flip() + scale_y_continuous('') + scale_x_discrete('')
Run Code Online (Sandbox Code Playgroud)
我已经尝试过在StackOverflow上看到的许多不同的重新排序和转换,但我似乎无法找到一个有效的.我相信这很简单,但我将不胜感激!
谢谢,
格雷格
我正在做一个基本的箱子图,其中y=age和x=Patient groups
age <- ggplot(data, aes(factor(group2), age)) + ylim(15, 80)
age + geom_boxplot(fill = "grey80", colour = "#3366FF")
Run Code Online (Sandbox Code Playgroud)
我希望你能用一些东西来帮助我:
1)是否可以在每个组框图上面包括每组的观察次数(但不是在我的组标签所在的X轴上),而不必在油漆中执行此操作:)?我尝试过使用:
age + annotate("text", x = "CON", y = 60, label = "25")
Run Code Online (Sandbox Code Playgroud)
CON第一组在哪里,就在y = 60这个组的箱线图上方.但是,该命令不起作用.我认为它有一些事情可以做,它x是一个连续的而不是一个分类的变量.
2)尽管有很多关于使用平均值而不是中位数的问题,我仍然没有找到适合我的代码?
3)在同样的问题上你有没有办法在箱线图中包含平均组数据?也许用
age + stat_summary(fun.y=mean, colour="red", geom="point")
Run Code Online (Sandbox Code Playgroud)
然而,它只包括一个平均所在的点.或者再次使用
age + annotate("text", x = "CON", y = 30, label = "30")
Run Code Online (Sandbox Code Playgroud)
哪一个CON是第一组,y = 30是〜组年龄均值.知道如何灵活和丰富的ggplot2语法,我希望有一种更优雅的方式来使用真实的统计输出而不是annotate.
任何建议/链接将不胜感激!
谢谢!!
我遇到了一个奇怪的问题.我能够使用R/ggplot2创建和保存pdf文件,并在R Console运行时查看它们.一旦我退出R控制台,Mac OS X上的预览将不再显示PDF.我已经能够保存.png文件没有问题,但由于我无法控制的原因,我需要保存为pdf文件.我用来保存的代码如下:
pdfFile <-c("/Users/adam/mock/dir/structure.pdf")
pdf(pdfFile)
ggplot(y=count,data=allCombined, aes(x=sequenceName, fill=factor(subClass))) + geom_bar()
ggsave(pdfFile)
Run Code Online (Sandbox Code Playgroud)
有谁遇到过类似的问题?如果是这样,我需要做些什么来解决它?非常感谢您的宝贵时间.
我想在下图中更改医院的堆叠顺序,因此#1位于顶部,#4位于底部.
该图是用
ggplot(survey,aes(x=hospital, y=age))+geom_boxplot()+coord_flip()+xlab("")+ylab ("\nPatient Age")
Run Code Online (Sandbox Code Playgroud)
我需要top-> down命令与现在相反.我不确定它为什么会这样."医院"专栏是一个重要因素.
非常感谢!
