这是一个非常基本的问题,但不幸的是,我至今未能找到解决办法。
对于数据,如:
library(tibble)
my_df <-
tribble(~manufacturer, ~mpg,
"audi", 17.6,
"lincoln", 11.3,
"nissan", 18.1)
## # A tibble: 3 x 2
## manufacturer mpg
## <chr> <dbl>
## 1 audi 17.6
## 2 lincoln 11.3
## 3 nissan 18.1
如果我定义了c(0, 30)
的缩放范围,我如何才能生成只显示水平轴的ggplot
可视化?
所需产出的演示将是(难看的,不按比例绘制):
这是非常基本的,所以张贴是很尴尬的。但实际上我一点线索都没有。即使不是使用哪一个geom
。
发布于 2021-07-20 05:50:34
以下是另一次尝试:
ggplot(my_df, aes(x=mpg, y=0)) +
geom_line(size=1) +
geom_point(shape = 108, size = 5) +
geom_text(aes(label=manufacturer),hjust=0.5, vjust=-2)+
geom_text(aes(label=mpg),hjust=.5, vjust=2) +
theme_void()
theme(axis.line.y=element_blank(),
axis.text.y=element_blank(),
axis.ticks.y=element_blank(),
axis.title.y=element_blank(),
panel.grid.minor.y=element_blank(),
panel.grid.major.y=element_blank())
发布于 2021-07-20 04:54:05
这可能是一个很好的起点。
library(ggplot2)
library(ggrepel)
my_df <- data.frame(manu = c("audi", "lincoln", "nissan"),
mpg = c(17.6, 11.3, 18.1))
ggplot(my_df) +
geom_linerange(aes(y = 1, xmin = 0, xmax = 30)) +
geom_linerange(aes(x = 0, ymin = .8, ymax = 1.2)) +
geom_linerange(aes(x = 30, ymin = .8, ymax = 1.2)) +
geom_label_repel(aes(x = mpg, y = 1.2, label = manu)) +
geom_text(aes(x = mpg, y = .9, label = mpg)) +
geom_linerange(aes(x = mpg), ymin = .95, ymax = 1) +
scale_y_continuous(expand=c(0,2)) +
theme_void()
发布于 2021-07-20 05:31:43
你可以试试
my_df %>%
ggplot(aes(mpg, y=0)) +
ggrepel::geom_text_repel(aes(y=0.15,label=manufacturer)) +
geom_segment(aes(xend=mpg, yend=0.05)) +
coord_fixed(ratio =10) +
scale_x_continuous(limits = c(0,30), expand = c(0,0)) +
theme_minimal() +
theme(axis.title.y = element_blank(),
axis.ticks.y = element_blank(),
axis.text.y = element_blank(),
panel.grid = element_blank(),
axis.line.x = element_line(color=1))
https://stackoverflow.com/questions/68454941
复制相似问题