我想变换坐标(而不是比例/值),以便y变量(翻转到x)间隔更好。我认为这将是coord_trans(y="log10")
或coord_trans(y="log2")
什么的,但这似乎并不奏效。ggplot翻转和变换坐标
library(ggplot2)
library(scales)
dat <- structure(list(median=c(2893, 0, 907.5, 1315, 0, 84, 98, 953,
0, 0, 1349, 17.5, 48.5, 7, 28, 18, 14, 37.5, 0, 383, 220.5, 49,
86.5, 816.5, 38, 41, 38, 1302, 14, 0, 1304, 754, 424.5, 0, 35.5,
28, 32, 0, 39),
name = c("name 1", "name 2", "name 3", "name 4",
"name 5", "name 6", "name 7", "name 8", "name 9", "name 10",
"name 11", "name 12", "name 13", "name 14", "name 15", "name 16",
"name 17", "name 18", "name 19", "name 20", "name 21", "name 22",
"name 23", "name 24", "name 25", "name 26", "name 27", "name 28",
"name 29", "name 30", "name 31", "name 32", "name 33", "name 34",
"name 35", "name 36", "name 37", "name 38", "name 39")),
.Names = c("median", "name"), row.names = c(NA, -39L), class = "data.frame")
dat = transform(dat, name = reorder(name, median))
ggplot(dat) +
geom_point(aes(y=median, x=name)) +
#coord_trans(y="log10") +
coord_flip() +
theme_bw() +
theme(
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
axis.line = element_line(color = 'black'),
panel.background = element_blank(),
axis.title.y = element_blank())
我不想重新调整值:
ggplot(dat) +
geom_point(aes(y=median, x=name)) +
scale_y_log10() +
coord_flip() +
theme_bw() +
theme(
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
axis.line = element_line(color = 'black'),
panel.background = element_blank(),
axis.title.y = element_blank())
'coord_flip(... )'和'coord_trans(...)'都是'coord_ *'函数,所以它们不能被“堆叠” - 它们互相覆盖。你使用它的方式,'coord_flip(...)'覆盖'coord_trans(...)',这就是为什么你看不到效果。如果反转代码行,则会得到log10转换,但不会翻转。你为什么不**要重新定标 - 它能完成同样的事情? – jlhoward 2014-10-03 18:14:07
谢谢,@jlhoward。我忘了关于'coord_'的功能。我只想改变间距,而不是标签。看看[这里](http://www.cookbook-r.com/Graphs/Axes_(ggplot2)/#axis-transformations-log-sqrt-etc),看看log2缩放与log2转换。第一张和第三张图像以原始比例显示轴。 – 2014-10-03 18:29:37
所以你想要的标签是'1000,2000,3000',但间隔在log10的规模?尝试添加'breaks = c(1000,2000,3000)'调用'scale_y_log10(...)' – jlhoward 2014-10-03 18:50:11