我在reddit上看到了一个图片,并一直致力于重新创建它。但是我无法将axis.text配置为更清晰的格式,并且想知道可能的解决方案是什么。
到目前为止,我提出的代码是:
library(ggplot2)
library(forcats)
airlines <- c('Delta', 'American', 'Spirit', 'JetBlue', 'Alaska', 'United', 'Southwest')
market_cap <- c(37100000000,25300000000, 3400000000, 7000000000, 9000000000, 21000000000, 25800000000)
airline_industry <- data.frame(airlines, market_cap)
ggplot(airline_industry, aes(fct_reorder(airlines, market_cap), market_cap)) +
geom_bar(stat = "identity") +
labs(title = "Biggest US Airline Companies by Market Cap", y = 'Market Capitalization (USD)') +
coord_flip() +
theme(axis.title.y = element_blank()) +
scale_x_discrete(labels = c('10000000000' = '10B', '20000000000' = '20B', '30000000000' = '30B'))
所以我遇到的问题是我沿x轴的断裂手动列出10,20和&amp; 300亿数字形式,看起来很乱。我试图弄清楚如何用10B,20B和30B表示休息时间。类似于上面共享的reddit示例的示例。 scale_x_discrete似乎不起作用。获得我想要的结果的正确方法是什么?
答案 0 :(得分:0)
您可以使用:
scale_y_continuous(breaks = c(0, 1e10, 2e10, 3e10), labels = c('0B', '10B', '20B', '30B'))
在这里使用y
比例可能有点混乱,但这是由于coord_flip
;您原来的美学映射是market_cap -> y
。
然后注意该轴是连续的,而不是离散的。
最后,您还需要为0提供标签,因为这也是一个休息时间。提供休息和标签总是好的。您不应将间断作为字符向量提供,因为它是连续缩放。