У меня возникают проблемы с нанесением некоторых данных на две отдельные шкалы Y. Вот две визуализации некоторых данных о качестве воздуха, с которыми я работал. На первом рисунке каждый загрязнитель изображен по шкале y в долях на миллиард. На этом рисунке co
доминирует над осью Y, и никакие другие изменения загрязняющих веществ не представлены должным образом. В науке о качестве воздуха загрязнитель co
обычно выражается в частях на миллион, а не в частях на миллиард. На втором рисунке показаны те же данные no
, no2
и o3
, но я преобразовал концентрацию co
из ppb
в ppm
(разделить на 1000). Однако, хотя no
, no2
и o3
выглядят лучше, вариация co
представлена не совсем верно...
Есть ли простой способ с помощью ggplot()
нормализовать шкалу оси Y и наилучшим образом представить каждый тип загрязнителя? Я также пытаюсь проработать некоторые другие примеры, в которых используется gridExtra для объединения двух отдельных графиков, каждый из которых сохраняет свои исходные y-шкалы.
Данные, необходимые для создания этих цифр, огромны (26 295 наблюдений), поэтому я все еще работаю над воспроизводимым примером. Надеемся, что решение можно найти в коде ggplot()
, описанном ниже:
plt <- ggplot(df, aes(x=date, y = value, color = pollutant)) +
geom_point() +
facet_grid(id~pollutant, labeller = label_both, switch = "y")
plt
Вот как выглядит head(df)
(до преобразования co
в ppm):
date id pollutant value
1 2017-06-16 10:00:00 Pohl co 236.00
2 2017-06-16 10:00:00 Pohl no 23.06
3 2017-06-16 10:00:00 Pohl no2 12.05
4 2017-06-16 10:00:00 Pohl o3 8.52
5 2017-06-16 11:00:00 Pohl co 207.00
6 2017-06-16 11:00:00 Pohl no 20.82
facet_grid(..., scales = "free_y")
позволяет каждой строке иметь разную шкалу Y, но вам, возможно, придется переключить грань строки/столбца, напримерfacet_grid(pollutant ~ id, scales = "free_y")
- person Marius   schedule 13.09.2017