相关疑难解决方法(0)

更改离散x刻度的顺序

我正在使用具有离散x刻度的ggplot制作一个躲闪条形图,x轴现在按字母顺序排列,但我需要重新排列它以便按y轴的值排序(即,最高的条形将位于左侧).

我尝试了排序或排序,但结果是对x轴进行排序,而不是分别对条形进行排序.

我做错了什么?

r ggplot2 r-faq

128
推荐指数
4
解决办法
23万
查看次数

你如何专门订购ggplot2 x轴而不是字母顺序?

我想一个使heatmap使用ggplot2使用geom_tiles此功能,下面是我的代码:

p<-ggplot(data,aes(Treatment,organisms))+geom_tile(aes(fill=S))+
  scale_fill_gradient(low = "black",high = "red") + 
  scale_x_discrete(expand = c(0, 0)) + 
  scale_y_discrete(expand = c(0, 0)) + 
  theme(legend.position = "right", 
    axis.ticks = element_blank(), 
    axis.text.x = element_text(size = base_size, angle = 90, hjust = 0, colour = "black"),
    axis.text.y = element_text(size = base_size, hjust = 1, colour = "black")).
Run Code Online (Sandbox Code Playgroud)

数据是我的data.csv文件
我的X轴是治疗的类型
我的Y轴是有机体的类型

我对命令和编程不太熟悉,而且我对此比较陌生.我只是想能够指定x轴上标签的顺序.在这种情况下,我试图指定"治疗"的顺序.默认情况下,它按字母顺序排序.如何覆盖此数据/保持数据的顺序与原始csv文件中的顺序相同?

我试过这个命令

scale_x_discrete(limits=c("Y","X","Z"))
Run Code Online (Sandbox Code Playgroud)

其中x,y和z是我的治疗条件顺序.然而,它不能很好地工作,并给我缺少热箱.

r ggplot2 r-faq

69
推荐指数
2
解决办法
12万
查看次数

ggplot2:排序一个情节

我有一个data.frame,从最高到最低排序.例如:

x <- structure(list(variable = structure(c(10L, 6L, 3L, 4L, 2L, 8L, 
9L, 5L, 1L, 7L), .Label = c("a", "b", "c", "d", "e", "f", "g", 
"h", "i", "j"), class = c("ordered", "factor")), value = c(0.990683229813665, 
0.975155279503106, 0.928571428571429, 0.807453416149068, 0.717391304347826, 
0.388198757763975, 0.357142857142857, 0.201863354037267, 0.173913043478261, 
0.0496894409937888)), .Names = c("variable", "value"), row.names = c(10L, 
6L, 3L, 4L, 2L, 8L, 9L, 5L, 1L, 7L), class = "data.frame")

ggplot(x, aes(x=variable,y=value)) + geom_bar(stat="identity") + 
 scale_y_continuous("",label=scales::percent) + coord_flip() 
Run Code Online (Sandbox Code Playgroud)

现在,数据很好并且排序,但是当我绘制时,它按因子排序.这很烦人,我该如何解决?

r ggplot2

55
推荐指数
4
解决办法
9万
查看次数

ggplot2:更改轴上因子变量的显示顺序

当我使用geom_tile()ggplot2和离散缩放标签在x轴按升序排列,在y轴降序排列:

#some sample data
a <- runif(400)
a <- matrix(a, ncol=20)
colnames(a) <- letters[seq( from = 1, to = 20 )]
rownames(a) <- letters[seq( from = 1, to = 20 )]
a <- melt(a)
Run Code Online (Sandbox Code Playgroud)

当我绘制数据帧时,a这就出现了:

ggplot(a, aes(X1, X2, fill = value)) + geom_tile() + 
scale_fill_gradient(low = "white",  high = "black", breaks=seq(from=0, to=1, by=.1), name="value") + 
opts(axis.text.x=theme_text(angle=-90, hjust=0)) +
scale_x_discrete(name="") + scale_y_discrete(name="") 
Run Code Online (Sandbox Code Playgroud)

并且对于x和y标记的coords不同:

在此输入图像描述

我想让标签从上到下,从左到右排序.有一个快速的方法来做到这一点?

r ggplot2

21
推荐指数
2
解决办法
3万
查看次数

标签 统计

ggplot2 ×4

r ×4

r-faq ×2