我希望了解繪制氣泡圖的最佳方法,但它比我預期的更令人困惑。
取一個簡單的資料框:
library(tidyverse)
bubble_data <- data.frame(x = c(1, 1), y = c(1, 1), size = c(9, 16), type = c("A", "B"))
> bubble_data
x y size type
1 1 1 9 A
2 1 1 16 B
如果我們使繪制的氣泡的大小等于size變數,那么如果做得正確,繪制的氣泡的面積應該是 9 到 16 的比率,或約 56%。
繪圖我們得到的東西看起來并不接近 56% 的面積比例(而且氣泡非常小):
ggplot(bubble_data, aes(x = x, y = y, size = size, color = type))
geom_point(alpha = 0.3)

因此,我們可以通過取原始資料的平方根來縮放基礎資料來創建一個新變數(因為面積與半徑的平方成正比),然后繪制:
bubble_data_scaled <- bubble_data %>%
mutate(scaled_size = sqrt(size))
> bubble_data_scaled
x y size type scaled_size
1 1 1 9 A 3
2 1 1 16 B 4
# plot with scaled size
ggplot(bubble_data_scaled, aes(x = x, y = y, size = scaled_size, color = type))
geom_point(alpha = 0.3)
這產生了一個看起來與前一個情節幾乎相同的情節

最后,我們將在原始資料集上使用scale_size_areaorscaled sizebubble_data
ggplot(bubble_data, aes(x = x, y = y, size = size, color = type))
geom_point(alpha = 0.3)
scale_size_area()
但這似乎也沒有產生正確的結果,其中一個氣泡看起來有點偏移。

這讓我想到了我的問題:繪制氣泡圖的正確方法是什么,其中氣泡的區域將反映基礎資料的正確相對大小,以及如何縮放繪圖輸出以便更容易看到氣泡?
謝謝!
uj5u.com熱心網友回復:
要按大小縮放氣泡,請使用scale_size_area. 為了使它們更大,請更改max_size引數。
ggplot(bubble_data, aes(x = x, y = y, size = size, color = type))
geom_point(alpha = 0.3)
scale_size_area(max_size = 20, breaks = (0:5)^2)

至于偏移外觀,這聽起來像是由于渲染設備沒有使用抗鋸齒。這會使線條看起來參差不齊,或者形狀在像素級別看起來不對稱。例如,windows 中的默認繪圖視窗設備不使用抗鋸齒。您可以添加ragg設備并調整 RStudio 中的設定,使其成為繪圖視窗的默認設定。或者,您可以使用 ggsave 進行渲染ragg或cairo獲得良好的抗鋸齒效果。
要獲得對氣泡大小的坐標比例控制(即在坐標空間中使氣泡“x 個單位寬”,您可以使用ggforce::geom_circle.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/515286.html
標籤:rggplot2气泡图
上一篇:如果有日期
