library(tidyverse)
data <- structure(list(periodo = c("2T", "2T", "3T", "3T", "1T", "1T",
"3T", "3T", "4T", "4T", "1T", "1T", "2T", "2T", "3T", "3T", "4T",
"4T", "1T", "1T", "2T", "2T", "3T", "3T", "4T", "4T", "1T", "1T",
"2T", "2T", "3T", "3T", "4T", "4T", "1T", "1T", "1S", "2S", "1S",
"2S", "1S", "2S", "2S", "2S", "1S", "1S"), valor = c(0.005248075,
0.005128614, 0.0027195, 0.0151865, 0.002138615, 0.0154045, 0.00258683684210526,
0.010892, 0.02037825, 0.0232392666666667, 0.026491725, 0.0232410291666667,
0.026384125, 0.0232420416666667, 0.00438416666666667, 0.00122625,
0.0125198083333333, 0.00935866250000001, 0.00981484583333334,
0.0072391375, 0.0214400530654592, 0.0214486897415176, 0.0597089068767695,
0.0116124859053284, 0.00311100760334978, 0.00369158618252611,
0.02056125, 0.00690491666666667, 0.00277258333333333, 0.00211695833333333,
0.00235166666666667, 0.00235791666666667, 0.0176666666666667,
0.025125, 0.0236666666666667, 0.0212916666666667, 0.000170841666666667,
0.000172070833333333, 0.0005342625, 0.00141873333333333, 0.00107964166666667,
0.00191949166666667, 0.000509783333333334, 0.0013974, 0.002087,
0.000502616666666667), nombre = structure(c(4L, 2L, 4L, 2L, 4L,
2L, 4L, 2L, 4L, 2L, 4L, 2L, 4L, 2L, 4L, 2L, 4L, 2L, 4L, 2L, 4L,
2L, 4L, 2L, 4L, 2L, 4L, 2L, 4L, 2L, 4L, 2L, 4L, 2L, 4L, 2L, 3L,
3L, 3L, 3L, 4L, 1L, 2L, 4L, 1L, 2L), .Label = c("P-2", "R-5",
"E-3", "R-4"), class = c("ordered", "factor"))), row.names = c(NA,
-46L), class = c("tbl_df", "tbl", "data.frame")
图表
data %>%
ggplot(aes(periodo, valor, fill = nombre)) +
geom_col(position = position_dodge2(width = 0.3, preserve = "single")) +
scale_y_continuous(
label_y,
trans = "log10",
limits = 10^c(-5, 0),
breaks = 10^c(-5:0)
)
默认情况下,栏是上下颠倒的,这很让人困惑,因为我是从下往上读valor
列的。
预期输出:我需要的酒吧倒置像“正常”。
发布于 2021-05-11 13:03:16
这是一个技巧,我们将绘制的值移动到>1,然后将标签移动相同的量:
(顺便说一下,我想补充一下,条形图在对数尺度上将不可避免地具有误导性,因为我们被教导将长度解释为与值成比例。在这里,geom_point
可能是一个更简单的选择,避免了任何调整。)
data %>%
ggplot(aes(periodo, valor*1e5, fill = nombre)) +
geom_col(position = position_dodge2(width = 0.3, preserve = "single")) +
scale_y_continuous(name = "valor",
trans = "log10",
limits = 10^c(0, 5),
breaks = 10^c(0:5),
labels = scales::scientific(10^c(-5:0))
)
https://stackoverflow.com/questions/67478593
复制相似问题