Изменение порядка Boxplot в ggplot2 - PullRequest
1 голос
/ 15 февраля 2020

У меня есть следующие тестовые данные, и я хотел бы построить их в порядке убывания, так как мои коды не дают желаемый график

test_data_plot

<table><tbody><tr><th>PAHs</th><th>Variable</th><th>Value</th></tr><tr><td>TB1</td><td>Nap</td><td>110</td></tr><tr><td>TB3</td><td>Nap</td><td>200</td></tr><tr><td>TB6</td><td>Nap</td><td>110</td></tr><tr><td>TB8</td><td>Nap</td><td>20</td></tr><tr><td>ND1</td><td>Nap</td><td>20</td></tr><tr><td>ND3</td><td>Nap</td><td>10</td></tr><tr><td>ND5</td><td>Nap</td><td>0</td></tr><tr><td>ND8</td><td>Nap</td><td>0</td></tr><tr><td>QT1</td><td>Nap</td><td>0</td></tr><tr><td>QT4</td><td>Nap</td><td>10</td></tr><tr><td>QT5</td><td>Nap</td><td>0</td></tr><tr><td>QT9</td><td>Nap</td><td>10</td></tr><tr><td>PT1</td><td>Nap</td><td>20</td></tr><tr><td>PT2</td><td>Nap</td><td>0</td></tr><tr><td>PT4</td><td>Nap</td><td>0</td></tr><tr><td>TB1</td><td>AcNP</td><td>20</td></tr><tr><td>TB3</td><td>AcNP</td><td>150</td></tr><tr><td>TB6</td><td>AcNP</td><td>70</td></tr><tr><td>TB8</td><td>AcNP</td><td>10</td></tr><tr><td>ND1</td><td>AcNP</td><td>0</td></tr><tr><td>ND3</td><td>AcNP</td><td>0</td></tr><tr><td>ND5</td><td>AcNP</td><td>0</td></tr><tr><td>ND8</td><td>AcNP</td><td>0</td></tr><tr><td>QT1</td><td>AcNP</td><td>0</td></tr><tr><td>QT4</td><td>AcNP</td><td>10</td></tr><tr><td>QT5</td><td>AcNP</td><td>0</td></tr><tr><td>QT9</td><td>AcNP</td><td>10</td></tr><tr><td>PT1</td><td>AcNP</td><td>30</td></tr><tr><td>PT2</td><td>AcNP</td><td>10</td></tr><tr><td>PT4</td><td>AcNP</td><td>0</td></tr><tr><td>TB1</td><td>AcN</td><td>130</td></tr><tr><td>TB3</td><td>AcN</td><td>110</td></tr><tr><td>TB6</td><td>AcN</td><td>150</td></tr><tr><td>TB8</td><td>AcN</td><td>10</td></tr><tr><td>ND1</td><td>AcN</td><td>40</td></tr><tr><td>ND3</td><td>AcN</td><td>0</td></tr><tr><td>ND5</td><td>AcN</td><td>0</td></tr><tr><td>ND8</td><td>AcN</td><td>10</td></tr><tr><td>QT1</td><td>AcN</td><td>0</td></tr><tr><td>QT4</td><td>AcN</td><td>10</td></tr><tr><td>QT5</td><td>AcN</td><td>0</td></tr><tr><td>QT9</td><td>AcN</td><td>10</td></tr><tr><td>PT1</td><td>AcN</td><td>150</td></tr><tr><td>PT2</td><td>AcN</td><td>10</td></tr><tr><td>PT4</td><td>AcN</td><td>10</td></tr><tr><td>TB1</td><td>Fl</td><td>70</td></tr><tr><td>TB3</td><td>Fl</td><td>80</td></tr><tr><td>TB6</td><td>Fl</td><td>0</td></tr><tr><td>TB8</td><td>Fl</td><td>0</td></tr><tr><td>ND1</td><td>Fl</td><td>0</td></tr><tr><td>ND3</td><td>Fl</td><td>10</td></tr><tr><td>ND5</td><td>Fl</td><td>0</td></tr><tr><td>ND8</td><td>Fl</td><td>10</td></tr><tr><td>QT1</td><td>Fl</td><td>0</td></tr><tr><td>QT4</td><td>Fl</td><td>30</td></tr><tr><td>QT5</td><td>Fl</td><td>0</td></tr><tr><td>QT9</td><td>Fl</td><td>0</td></tr><tr><td>PT1</td><td>Fl</td><td>0</td></tr><tr><td>PT2</td><td>Fl</td><td>10</td></tr><tr><td>PT4</td><td>Fl</td><td>0</td></tr><tr><td>TB1</td><td>An</td><td>100</td></tr><tr><td>TB3</td><td>An</td><td>230</td></tr><tr><td>TB6</td><td>An</td><td>110</td></tr><tr><td>TB8</td><td>An</td><td>110</td></tr><tr><td>ND1</td><td>An</td><td>130</td></tr><tr><td>ND3</td><td>An</td><td>10</td></tr><tr><td>ND5</td><td>An</td><td>10</td></tr><tr><td>ND8</td><td>An</td><td>40</td></tr><tr><td>QT1</td><td>An</td><td>10</td></tr><tr><td>QT4</td><td>An</td><td>60</td></tr><tr><td>QT5</td><td>An</td><td>0</td></tr><tr><td>QT9</td><td>An</td><td>110</td></tr><tr><td>PT1</td><td>An</td><td>150</td></tr><tr><td>PT2</td><td>An</td><td>30</td></tr><tr><td>PT4</td><td>An</td><td>30</td></tr><tr><td>TB1</td><td>PhA</td><td>100</td></tr><tr><td>TB3</td><td>PhA</td><td>240</td></tr><tr><td>TB6</td><td>PhA</td><td>200</td></tr><tr><td>TB8</td><td>PhA</td><td>110</td></tr><tr><td>ND1</td><td>PhA</td><td>130</td></tr><tr><td>ND3</td><td>PhA</td><td>40</td></tr><tr><td>ND5</td><td>PhA</td><td>10</td></tr><tr><td>ND8</td><td>PhA</td><td>40</td></tr><tr><td>QT1</td><td>PhA</td><td>0</td></tr><tr><td>QT4</td><td>PhA</td><td>70</td></tr><tr><td>QT5</td><td>PhA</td><td>0</td></tr><tr><td>QT9</td><td>PhA</td><td>130</td></tr><tr><td>PT1</td><td>PhA</td><td>150</td></tr><tr><td>PT2</td><td>PhA</td><td>30</td></tr><tr><td>PT4</td><td>PhA</td><td>40</td></tr><tr><td>TB1</td><td>FlA</td><td>20</td></tr><tr><td>TB3</td><td>FlA</td><td>20</td></tr><tr><td>TB6</td><td>FlA</td><td>60</td></tr><tr><td>TB8</td><td>FlA</td><td>30</td></tr><tr><td>ND1</td><td>FlA</td><td>30</td></tr><tr><td>ND3</td><td>FlA</td><td>0</td></tr><tr><td>ND5</td><td>FlA</td><td>0</td></tr><tr><td>ND8</td><td>FlA</td><td>0</td></tr><tr><td>QT1</td><td>FlA</td><td>0</td></tr><tr><td>QT4</td><td>FlA</td><td>20</td></tr><tr><td>QT5</td><td>FlA</td><td>0</td></tr><tr><td>QT9</td><td>FlA</td><td>30</td></tr><tr><td>PT1</td><td>FlA</td><td>30</td></tr><tr><td>PT2</td><td>FlA</td><td>0</td></tr><tr><td>PT4</td><td>FlA</td><td>20</td></tr><tr><td>TB1</td><td>Py</td><td>20</td></tr><tr><td>TB3</td><td>Py</td><td>20</td></tr><tr><td>TB6</td><td>Py</td><td>60</td></tr><tr><td>TB8</td><td>Py</td><td>30</td></tr><tr><td>ND1</td><td>Py</td><td>30</td></tr><tr><td>ND3</td><td>Py</td><td>0</td></tr><tr><td>ND5</td><td>Py</td><td>0</td></tr><tr><td>ND8</td><td>Py</td><td>0</td></tr><tr><td>QT1</td><td>Py</td><td>0</td></tr><tr><td>QT4</td><td>Py</td><td>20</td></tr><tr><td>QT5</td><td>Py</td><td>0</td></tr><tr><td>QT9</td><td>Py</td><td>30</td></tr><tr><td>PT1</td><td>Py</td><td>30</td></tr><tr><td>PT2</td><td>Py</td><td>0</td></tr><tr><td>PT4</td><td>Py</td><td>20</td></tr><tr><td>TB1</td><td>BaA</td><td>0</td></tr><tr><td>TB3</td><td>BaA</td><td>10</td></tr><tr><td>TB6</td><td>BaA</td><td>0</td></tr><tr><td>TB8</td><td>BaA</td><td>10</td></tr><tr><td>ND1</td><td>BaA</td><td>30</td></tr><tr><td>ND3</td><td>BaA</td><td>0</td></tr><tr><td>ND5</td><td>BaA</td><td>0</td></tr><tr><td>ND8</td><td>BaA</td><td>0</td></tr><tr><td>QT1</td><td>BaA</td><td>0</td></tr><tr><td>QT4</td><td>BaA</td><td>0</td></tr><tr><td>QT5</td><td>BaA</td><td>0</td></tr><tr><td>QT9</td><td>BaA</td><td>10</td></tr><tr><td>PT1</td><td>BaA</td><td>0</td></tr><tr><td>PT2</td><td>BaA</td><td>0</td></tr><tr><td>PT4</td><td>BaA</td><td>0</td></tr><tr><td>TB1</td><td>Chy</td><td>0</td></tr><tr><td>TB3</td><td>Chy</td><td>0</td></tr><tr><td>TB6</td><td>Chy</td><td>0</td></tr><tr><td>TB8</td><td>Chy</td><td>0</td></tr><tr><td>ND1</td><td>Chy</td><td>30</td></tr><tr><td>ND3</td><td>Chy</td><td>0</td></tr><tr><td>ND5</td><td>Chy</td><td>0</td></tr><tr><td>ND8</td><td>Chy</td><td>0</td></tr><tr><td>QT1</td><td>Chy</td><td>0</td></tr><tr><td>QT4</td><td>Chy</td><td>0</td></tr><tr><td>QT5</td><td>Chy</td><td>0</td></tr><tr><td>QT9</td><td>Chy</td><td>0</td></tr><tr><td>PT1</td><td>Chy</td><td>10</td></tr><tr><td>PT2</td><td>Chy</td><td>0</td></tr><tr><td>PT4</td><td>Chy</td><td>0</td></tr><tr><td>TB1</td><td>BpFlA</td><td>20</td></tr><tr><td>TB3</td><td>BpFlA</td><td>10</td></tr><tr><td>TB6</td><td>BpFlA</td><td>30</td></tr><tr><td>TB8</td><td>BpFlA</td><td>30</td></tr><tr><td>ND1</td><td>BpFlA</td><td>40</td></tr><tr><td>ND3</td><td>BpFlA</td><td>0</td></tr><tr><td>ND5</td><td>BpFlA</td><td>0</td></tr><tr><td>ND8</td><td>BpFlA</td><td>0</td></tr><tr><td>QT1</td><td>BpFlA</td><td>0</td></tr><tr><td>QT4</td><td>BpFlA</td><td>0</td></tr><tr><td>QT5</td><td>BpFlA</td><td>0</td></tr><tr><td>QT9</td><td>BpFlA</td><td>40</td></tr><tr><td>PT1</td><td>BpFlA</td><td>40</td></tr><tr><td>PT2</td><td>BpFlA</td><td>0</td></tr><tr><td>PT4</td><td>BpFlA</td><td>10</td></tr><tr><td>TB1</td><td>BkFlA</td><td>20</td></tr><tr><td>TB3</td><td>BkFlA</td><td>10</td></tr><tr><td>TB6</td><td>BkFlA</td><td>20</td></tr><tr><td>TB8</td><td>BkFlA</td><td>30</td></tr><tr><td>ND1</td><td>BkFlA</td><td>30</td></tr><tr><td>ND3</td><td>BkFlA</td><td>10</td></tr><tr><td>ND5</td><td>BkFlA</td><td>0</td></tr><tr><td>ND8</td><td>BkFlA</td><td>0</td></tr><tr><td>QT1</td><td>BkFlA</td><td>0</td></tr><tr><td>QT4</td><td>BkFlA</td><td>10</td></tr><tr><td>QT5</td><td>BkFlA</td><td>0</td></tr><tr><td>QT9</td><td>BkFlA</td><td>20</td></tr><tr><td>PT1</td><td>BkFlA</td><td>30</td></tr><tr><td>PT2</td><td>BkFlA</td><td>10</td></tr><tr><td>PT4</td><td>BkFlA</td><td>10</td></tr><tr><td>TB1</td><td>BaP</td><td>10</td></tr><tr><td>TB3</td><td>BaP</td><td>0</td></tr><tr><td>TB6</td><td>BaP</td><td>0</td></tr><tr><td>TB8</td><td>BaP</td><td>0</td></tr><tr><td>ND1</td><td>BaP</td><td>20</td></tr><tr><td>ND3</td><td>BaP</td><td>0</td></tr><tr><td>ND5</td><td>BaP</td><td>0</td></tr><tr><td>ND8</td><td>BaP</td><td>10</td></tr><tr><td>QT1</td><td>BaP</td><td>0</td></tr><tr><td>QT4</td><td>BaP</td><td>0</td></tr><tr><td>QT5</td><td>BaP</td><td>0</td></tr><tr><td>QT9</td><td>BaP</td><td>0</td></tr><tr><td>PT1</td><td>BaP</td><td>0</td></tr><tr><td>PT2</td><td>BaP</td><td>0</td></tr><tr><td>PT4</td><td>BaP</td><td>0</td></tr><tr><td>TB1</td><td>dBahA</td><td>40</td></tr><tr><td>TB3</td><td>dBahA</td><td>10</td></tr><tr><td>TB6</td><td>dBahA</td><td>20</td></tr><tr><td>TB8</td><td>dBahA</td><td>20</td></tr><tr><td>ND1</td><td>dBahA</td><td>20</td></tr><tr><td>ND3</td><td>dBahA</td><td>0</td></tr><tr><td>ND5</td><td>dBahA</td><td>0</td></tr><tr><td>ND8</td><td>dBahA</td><td>0</td></tr><tr><td>QT1</td><td>dBahA</td><td>0</td></tr><tr><td>QT4</td><td>dBahA</td><td>20</td></tr><tr><td>QT5</td><td>dBahA</td><td>0</td></tr><tr><td>QT9</td><td>dBahA</td><td>0</td></tr><tr><td>PT1</td><td>dBahA</td><td>0</td></tr><tr><td>PT2</td><td>dBahA</td><td>0</td></tr><tr><td>PT4</td><td>dBahA</td><td>10</td></tr><tr><td>TB1</td><td>IP</td><td>0</td></tr><tr><td>TB3</td><td>IP</td><td>0</td></tr><tr><td>TB6</td><td>IP</td><td>0</td></tr><tr><td>TB8</td><td>IP</td><td>0</td></tr><tr><td>ND1</td><td>IP</td><td>0</td></tr><tr><td>ND3</td><td>IP</td><td>0</td></tr><tr><td>ND5</td><td>IP</td><td>0</td></tr><tr><td>ND8</td><td>IP</td><td>0</td></tr><tr><td>QT1</td><td>IP</td><td>0</td></tr><tr><td>QT4</td><td>IP</td><td>0</td></tr><tr><td>QT5</td><td>IP</td><td>0</td></tr><tr><td>QT9</td><td>IP</td><td>0</td></tr><tr><td>PT1</td><td>IP</td><td>0</td></tr><tr><td>PT2</td><td>IP</td><td>0</td></tr><tr><td>PT4</td><td>IP</td><td>0</td></tr><tr><td>TB1</td><td>BghiP</td><td>0</td></tr><tr><td>TB3</td><td>BghiP</td><td>0</td></tr><tr><td>TB6</td><td>BghiP</td><td>0</td></tr><tr><td>TB8</td><td>BghiP</td><td>0</td></tr><tr><td>ND1</td><td>BghiP</td><td>10</td></tr><tr><td>ND3</td><td>BghiP</td><td>0</td></tr><tr><td>ND5</td><td>BghiP</td><td>0</td></tr><tr><td>ND8</td><td>BghiP</td><td>0</td></tr><tr><td>QT1</td><td>BghiP</td><td>0</td></tr><tr><td>QT4</td><td>BghiP</td><td>0</td></tr><tr><td>QT5</td><td>BghiP</td><td>0</td></tr><tr><td>QT9</td><td>BghiP</td><td>0</td></tr><tr><td>PT1</td><td>BghiP</td><td>0</td></tr><tr><td>PT2</td><td>BghiP</td><td>0</td></tr><tr><td>PT4</td><td>BghiP</td><td>0</td></tr></tbody></table>
library(tidyverse)
library(cowplot)
library(scales)
scale_y_log2 <- function (...) 
{scale_y_continuous(..., trans = log2_trans())
}
alexa<-read.csv(file.choose(),header=T, sep=",")
require(reshape2)

alexa.m<-melt(alexa,id_var="PAHs")
alexa.m$PAHs<-factor(alexa.m$PAHs,rev(unique(alexa.m$PAHs)),ordered=TRUE) 
ggplot(alexa.m, aes(x=reorder(variable,-value),y=value))+scale_y_log2()+ 
 stat_boxplot(geom ='errorbar') + 
 geom_boxplot()+xlab(" ")+ ylab("PAHs concentration(µg/L)") +
  theme(axis.text.y   = element_text(size=11),
        axis.text.x   = element_text(size=11),
        axis.title.y  = element_text(size=11),panel.background = element_blank(), panel.border = element_rect(colour = "black", fill=NA, size=1))

1 Ответ

0 голосов
/ 15 февраля 2020

Ваш график уже находится в нисходящем порядке - в среднем.

Если вы отметите ?reorder, по умолчанию это будет порядок в среднем. Вы можете указать, какую функцию вы хотите использовать, чтобы переупорядочить значения интереса на FUN.

Например: строка ниже переупорядочивает по медиане значения в порядке возрастания.

aes(reorder(variable, value, FUN = median), value)

Строка ниже переупорядочивает по максимальному значению в порядке возрастания.

aes(reorder(variable, value, FUN = max), value)

В порядке убывания добавьте знак минуса, как вы уже сделали

aes(reorder(variable, -value, FUN = median), value)
aes(reorder(variable, -value, FUN = min), value)
...