使用R创建具有负值和正值的条形图

dxpyg8gm  于 2023-01-03  发布在  其他
关注(0)|答案(1)|浏览(147)

我想创建一个包含负值和正值的条形图,如下图所示(第一张图),其中中间有一条线0。但是,我创建的条形图中的条形都是垂直显示的(第二张图)。

我可以知道如何使我的条形图(图2)与图1中的条形图相似吗?
我的代码:

ggplot(fuel_trend, aes(fuel_type, changes)) + geom_col(position = "identity")

非常感谢。

8zzbczxx

8zzbczxx1#

由于您在问题中没有提供任何数据,我尝试重新创建您的数据。如果您的数据编码为数字,这应该不是问题,如下所示。

#### Load Tidyverse ####
library(tidyverse)

#### Recreate Data ####
fuel_type <- c("DIESEL",
          "DIESEL/ELECTRIC",
          "LPG",
          "PETROL",
          "PETROL/ELECTRIC")

changes <- c(-1097.82,
             92.96,
             59.35,
             -55.15,
             88.04)

df <- data.frame(fuel_type,
                 changes)

#### Plot ####
df %>% 
  ggplot(aes(x=fuel_type,
             y=changes))+
  geom_col()

然而,您的changes变量可能编码错误。这里我展示了相同的图,但将数据编码为因子。如果您的变量编码为字符,也可能出现这种情况。

#### Coded as Factor ####
df %>% 
  ggplot(aes(x=fuel_type,
             y=factor(changes)))+
  geom_col()

要解决这个问题,可以更改数据框中的数据类(这里我将其保存为df2

df2 <- df %>% 
  mutate(changes = as.numeric(changes))

...或使用as.numeric将其绘制为数值,如使用原始df数据框:

df %>% 
  ggplot(aes(x=fuel_type,
             y=as.numeric(changes)))+
  geom_col()

相关问题