Вопрос или проблема
Следующая статья оценивает влияние различных диапазонов оси y на предвзятость и восприятие размеров эффектов. Они проверяют три разные версии:
Полное условие показало полный диапазон от 0 до 100 на гипотетическом тесте на память.
Минимальное условие показало минимально необходимый диапазон для отображения данных.
Стандартизированное условие было сосредоточено вокруг среднего группы и расширено на один или два стандартных отклонения в любом направлении.
Исследование показывает, что “чувствительность участников к эффекту, изображенному на графике, была лучше, когда диапазон оси y находился между одним и двумя стандартными отклонениями, чем при минимальном или полном диапазонах. В дополнение, предвзятость также была меньше при стандартизированном диапазоне оси, чем при минимальных или полных диапазонах оси.”
Таким образом, мне интересно, как ggplot автоматически определяет масштабирование оси y? Я точно знаю, что это не полный диапазон, но мне трудно определить, больше ли масштабирование оси y в ggplot похоже на стандартизированное или полное. Ниже пример графика ggplot:
df <- data.frame(dose=c("D0.5", "D1", "D2"),
len=c(4.2, 10, 29.5))
library(ggplot2)
p<-ggplot(data=df, aes(x=dose, y=len)) +
geom_bar(stat="identity")
p
Ответ или решение
ggplot2 автоматизирует масштабирование оси y исходя из данных, которые представлены в графике. Основной принцип, на котором основывается данная автоматизация, заключается в том, чтобы отобразить данные на графике с минимальным пространственным искаженим. Это означает, что ggplot2 обычно не использует фиксированные или стандартные диапазоны, но вместо этого адаптирует диапазон на оси y в зависимости от минимальных и максимальных значений данных.
- Масштабирование y-оси: Когда ggplot2 строит график, он в первую очередь определяет минимальное и максимальное значение переменной, отображаемой на оси y. Это позволяет ему установить диапазон таким образом, чтобы он отображал все данные, при этом минимизируя пустое пространство. Например, в вашем коде:
df <- data.frame(dose=c("D0.5", "D1", "D2"), len=c(4.2, 10, 29.5))
library(ggplot2)
p <- ggplot(data=df, aes(x=dose, y=len)) +
geom_bar(stat="identity")
p
Здесь ggplot2 определит, что минимальное значение на оси y равно 4.2, а максимальное — 29.5. Соответственно, он настроит ось y таким образом, чтобы охватить этот диапазон.
-
Регулировка диапазона: В отличие от "полного" диапазона (например, от 0 до 100), ggplot2 может добавить некоторый дополнительный объем пространства над верхним пределом данных для удобства визуального восприятия. Если есть необходимость, можно вручную скорректировать ось y, добавив определенные границы с помощью функции
scale_y_continuous()
. -
Сравнение с другими подходами: Масштабирование по принципу "стандартизированного" диапазона (с учетом одного или двух стандартных отклонений) не является стандартным подходом в ggplot2. Однако, в определенных случаях можно добавить такие настройки вручную, если необходимо подстроить отображение данных для лучшей их интерпретации.
-
Анализ выводов исследования: Исследование, на которое вы ссылались, показывает, что восприятие данных может изменяться в зависимости от выбранного диапазона y-оси. В случае ggplot2, используемое автоматизированное масштабирование действительно стремится к минимальному и незаконченному диапазону, что может не всегда соответствовать идеальному визуальному восприятию, как показано в вашем исследовании.
В целом, ggplot2 решает задачу масштабирования оси y, исходя из данных, но не фиксируется на "стандартном" диапазоне, что делает его более адаптивным и гибким инструментом для визуализации данных.