【问题标题】:Scaling problem when plotting a graph in R在 R 中绘制图形时的缩放问题
【发布时间】:2023-03-16 01:16:02
【问题描述】:

我正在尝试在R中生成条形图,但是由于y轴值非常接近,因此图表没有差异。
有人可以帮我吗?

这是我用来生成图表的数据。

rede <- c("Wifi", "Wifi(AB)", "Wifi(AB) + 4G(AB)", "Wifi(AB) + 4G(B)", "4G(AB)")
disp <- c(0.9981663483026838, 0.9979983253954591, 0.9983305230561498, 0.9981898613052699, 0.9980460877265795)
down <- c(16.062788868489800, 17.534669535778500, 14.624618028127900, 15.85681496583588, 17.116271515163100)
dados <- data.frame("Ref" = rede, "Disponibilidade" = disp, "Downtime" = down)

ggplot(dados) +
aes(
x = Ref,
fill = Disponibilidade,
weight = Disponibilidade
) +
geom_bar(position = "fill") +
scale_fill_viridis_c(option = "plasma", direction = 1) +
labs(
x = "Redes",
y = "Valores",
title = "Gráfico Disponibilidade"
) +
theme_minimal() +
theme(
plot.title = element_text(size = 18L,
                      face = "bold",
                      hjust = 0.5)
)

【问题讨论】:

  • 请分享您用于创建图表的代码。
  • 你可能想看看coord_cartesian
  • 帮助你的究竟是什么?如果这就是你的数据,那么它就是这样——你无能为力来改变没有太大差异的事实。也许您想更改为不同类型的图表,但您应该使用哪种类型实际上取决于可视化的上下文和目的,并且变得主观
  • 现在你已经发布了你的代码(尽管现在作为一个答案),我可以看到你已经使用了geom_bar,默认情况下它会计算,而不是值。然后,您通过添加 position = "fill" 加强了该设置,这确保所有条形都堆叠到 1。您没有告诉 ggplot 在 y 轴上放置其他任何东西,我不确定您想要什么无论如何,在那个轴上。无论如何,我关于您要更改的内容以及是否需要我们做出决定的问题仍然适用
  • @camille 首先感谢您的帮助 :) 我希望 y 轴值的差异在条形图中更加明显

标签: r ggplot2


【解决方案1】:

正如 cmets 中的其他人所提到的,尚不清楚您到底在寻找什么,但您可以这样做(正如 @JonathanV.Solórzano 建议使用 coord_cartesian)。

library(ggplot2) 

ggplot(dados) +
  aes(
    x = Ref,
    y = Disponibilidade,
    fill = Disponibilidade,
    weight = Disponibilidade
  ) +
  geom_col() +
  scale_fill_viridis_c(option = "plasma", direction = 1) +
  coord_cartesian(ylim = c(min(dados$Disponibilidade), max(dados$Disponibilidade))) +
  labs(x = "Redes",
       y = "Valores",
       title = "Gráfico Disponibilidade") +
  theme_minimal() +
  theme(plot.title = element_text(size = 18L,
                                  face = "bold",
                                  hjust = 0.5))

输出

geom_bar 的替代方案(产生与上述相同的输出)

ggplot(dados) +
  aes(
    x = Ref,
    fill = Disponibilidade,
    weight = Disponibilidade
  ) +
  geom_bar() +
  scale_fill_viridis_c(option = "plasma", direction = 1) +
  coord_cartesian(ylim = c(min(dados$Disponibilidade), max(dados$Disponibilidade))) +
  labs(x = "Redes",
       y = "Valores",
       title = "Gráfico Disponibilidade") +
  theme_minimal() +
  theme(plot.title = element_text(size = 18L,
                                  face = "bold",
                                  hjust = 0.5))

【讨论】:

    猜你喜欢
    • 2019-05-23
    • 2018-10-19
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 2021-11-09
    • 2010-09-27
    • 2021-12-03
    相关资源
    最近更新 更多