Барплот без использования пакета - PullRequest
0 голосов
/ 21 мая 2019

Я новичок в R. Мои данные выглядят так: я хочу построить гистограмму без использования каких-либо пакетов. график должен иметь ось X для QR (1: 5) и ось Y со средним значением. для каждого из 1,2,3,4 и 5 ожидаются пять столбцов. Реальные данные имеют тысячи записей - это образец. любая помощь с благодарностью.

         date    QR        mean
1    6/29/2018     1        1.0336214
2    6/29/2018     2        1.0331653
3    6/29/2018     3        1.0323717
4    6/29/2018     4        1.0203561
5    6/29/2018     5        1.0051536
6    5/31/2018     1        1.0161869
7    5/31/2018     2        1.0187350
8    5/31/2018     3        1.0114061
9    5/31/2018     4        1.0192010
10   5/31/2018     5        1.0264293
11   4/30/2018     1        1.0173212
12   4/30/2018     2        1.0057920
13   4/30/2018     3        1.0284010
14   4/30/2018     4        1.0360230
15   4/30/2018     5        1.0195000
16   3/29/2018     1        0.9989350
17   3/29/2018     2        0.9981820
18   3/29/2018     3        0.9992832
19   3/29/2018     4        1.0237889
20   3/29/2018     5        1.0490677

как описано в сводном разделе

H <- mean
M <- QR
barplot.default(M,H,
         main = "Mean vs QR",
         xlab = "QR",
         ylab = "Mean",
         col  =   "Blue"
)

expected - five bars(in col QR - 1,2,3,4,5)  against the corresponding mean

1 Ответ

0 голосов
/ 22 мая 2019

барплот не подходит для вашей проблемы, так как у вас есть несколько средств для каждого QR.Для вас больше подходит коробочный участок, особенно если у вас тысячи рядов.Если имя вашего фрейма данных df, вот код:

boxplot(mean ~ QR,
    data=df,
    main = "Mean vs QR",
    xlab = "QR",
    ylab = "Mean",
    col  =   "Blue"
)

, который показывает этот график:

РЕДАКТИРОВАТЬ:

Если вы действительно хотите отобразить гистограмму, вы можете, но вам придется отображать стандартное отклонение пяти категорий QR.Вы можете использовать код этой темы , который дает нам этот код:

df_QR1 <- subset(df, subset = (QR==1))
df_QR2 <- subset(df, subset = (QR==2))
df_QR3 <- subset(df, subset = (QR==3))
df_QR4 <- subset(df, subset = (QR==4))
df_QR5 <- subset(df, subset = (QR==5))

mean_1 <- mean(df_QR1$mean)
sd_1 <- sd(df_QR1$mean)
mean_2 <- mean(df_QR2$mean)
sd_2 <- sd(df_QR2$mean)
mean_3 <- mean(df_QR3$mean)
sd_3 <- sd(df_QR3$mean)
mean_4 <- mean(df_QR4$mean)
sd_4 <- sd(df_QR4$mean)
mean_5 <- mean(df_QR5$mean)
sd_5 <- sd(df_QR5$mean)

means <- c(mean_1, mean_2, mean_3, mean_4, mean_5)
sds <- c(sd_1, sd_2, sd_3, sd_4, sd_5)
names(means) <- c("QR1", "QR2", "QR3", "QR4", "QR5")
names(sds) <- c("QR1", "QR2", "QR3", "QR4", "QR5")

bar_plot <- barplot(height = means,
    main = "Mean vs QR",
    xlab = "QR",
    ylab = "Mean",
    col  =   "Blue",
    ylim=c(0, max(means)+max(sds))
)

arrows(x0=bar_plot, y0=means+sds, x1=bar_plot, y1=means-sds,angle=90,code=3)

и вот график:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...