简体   繁体   中英

Plotting Categorical Values Histogram in R

I have data from two instruments. One column is a categorical values- status of sensor (1 or 2 or 3), second column is reference value- numerical value. I want to plot a histogram of status of sensor (1 or 2 or 3) for different ranges of reference. For example: when the reference value is 1-5, I want to see a frequency distribution of sensor 1 status (1 or 2 or 3). Similarly for 6-10 of reference data and upto 95-100 of reference value, I want a frequency distributions of sensor status. Any help is appreciated. I am trying to figure out how good the sensor is with respect to the reference. Here is some sample data:

sample_data <-
structure(list(sensor4_calcstatus = c(1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 
1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), ref_conc = c(0.6, 0.6, 3, 1.8, 
0.4, 0.4, 0.6, 0.2, 1, 1.8, 2.2, 0.6, 0.6, 0.4, 2.2, 3.2, 0.6, 
0.6, 0.4, 0.6, 0.8, 1, 0.6, 0.2, 0.2, 1, 0.4, 0.6, 1, 1.2, 0.4, 
0.4, 0.4, 1, 0.4, 0.8, 0.2, 0.4, 0.6, 44.6, 6.8, 11, 600, 131.4, 
32.4, 32, 87.6, 102.6, 89.6, 56.4, 57.8, 57.8, 56, 56, 51.4, 
54.8, 56.4, 56.4, 56.4, 58.6, 56, 55.6, 54.4, 54.8, 55.8, 54.6, 
55.8, 55.6, 54.6, 55, 54.8, 55.4, 56.2, 55, 54.8, 54.2, 55.2, 
55.6, 53.8, 56.2, 55, 55.6, 54.2, 54.8, 56, 54, 54, 54.4, 54.6, 
54.4, 54.2, 53.8, 53.8, 54.2, 54.4, 55, 54.4, 54.6, 56, 57.4, 
54.6, 54.4, 54.6, 55.2, 55.4, 55.2, 54.2, 56, 52.2, 52.6, 53.2, 
51, 47.6, 49.2, 49.4, 48.2, 49.2, 49.2, 52.4, 52.4, 53.8, 52.2, 
49.2, 53.6, 55.2, 52.8, 53, 48.8, 51.2, 49.4, 49, 47.8, 47.4, 
46.8, 50.4, 47.6, 47.2, 48.8, 48.8, 47.6, 47.8, 48.4, 48.2, 46.8, 
45, 44.4, 43.4, 44.2, 45.8, 46.8, 47.4, 47.6, 45.4, 44.6, 44.6, 
43.6, 44.4, 46.6, 39.8, 43.4, 42.2, 42.4, 40.4, 42.8, 44, 39.8, 
41, 39.8, 38.4, 39.6, 40.2, 41, 40, 39.6, 38.6, 40.6, 40, 39.8, 
38.6, 39, 38, 37.6, 37.6, 39.6, 37.6, 37.8, 38.8, 39.2, 38.2, 
37.8, 35.8, 35.2, 36.2, 36.2, 37.4, 35.8, 35.6, 33.8, 35.2, 35.8, 
35.2, 35.2, 35.6, 36.2, 36, 36.2, 36.2, 36, 34.4, 34.2, 34, 34, 
34, 35, 34.2, 33.8, 31.2, 33.2, 32.4, 31.8, 32.4, 32.6, 31.8, 
31.4, 31.2, 31.8, 30.8, 32.2, 30.8, 31.2, 29.4, 30.6, 30.2, 29.6, 
29.8, 30.2, 30.2, 29.4, 30.2, 29.2, 29.8, 30, 30.4, 30.6, 29.8, 
29.4, 29.4, 28.8, 28.8, 27.4, 29.4, 29, 28, 28.2, 29.4, 29.2, 
28.6, 29.2, 26.8, 25.8, 25.4, 26.4, 25.8, 26, 27, 26, 27.6, 27.2, 
27.6, 27.2, 25.8, 25.4, 25.6, 25.4, 26.4, 25.8, 25.2, 25.2, 24.8, 
23.4, 24.4, 24, 24.6, 25, 25.2, 26.8, 23.2, 24, 24, 24.2, 23.8, 
23.6, 24.6, 23.6, 23.6, 22.6, 23.8, 23.4, 21.4, 23, 21.8, 21.8, 
22.6, 22.6, 22.6, 23.4, 23, 22, 24, 21.2, 21.4, 22.2, 22, 21.4, 
22, 21.8, 21.6, 21, 21.6, 21.2, 21.6, 21.6, 21.4, 21.2, 21, 21.2, 
21.2, 20.8, 21.2, 21.4, 20.6, 20, 20, 20.8, 21, 19.6, 19.2, 19.6, 
20.2, 20.2, 20.4, 19.8, 19, 19, 18.8, 19.2, 19.4, 18.6, 18.2, 
17.2, 17.8, 18.2, 17.8, 18, 17.4, 17, 16.8, 17.4, 17.8, 18.2, 
17.6, 17.8, 17, 16.8, 17, 17.2, 17, 16.4, 17, 17.8, 15.6, 15.8, 
17, 15.6, 17.2, 16.6, 16.2, 16.8, 17, 17, 16.8, 15.6, 16.4, 16.6, 
15.4, 15.6, 15.4, 14.6, 14.8, 15.4, 14.6, 14.6, 15, 15.8, 15, 
15.2, 15.2, 15.2, 14.6, 14.8, 15, 15.2, 14.4, 15, 15, 15, 15.2, 
14, 13.8, 14.6, 14.8, 14, 14.2, 14.4, 14.4, 14.2, 14.2, 14.6, 
14.4, 13.8, 13.6, 13, 13.6, 13.4, 13.6, 13, 14, 13.6, 12.4, 12.6, 
13.6, 13.8, 12.8, 12.8, 12.8, 13.6, 13.2, 13, 13.2, 13.2, 12, 
12.2, 11.6, 12.2, 11.8, 12, 12, 11.6, 12.2, 12.8, 14, 11.8, 11.6, 
12.8, 11, 11, 11, 11.6, 12, 11.8, 11, 11.4, 11.8, 12, 11.8, 11.6, 
11.6, 11.4, 11.2, 11.6, 11, 10.4, 11.2, 11, 10.4, 10, 9.8, 10.4, 
11, 11.2, 11, 11.4, 10.8, 10.8, 11, 10.8, 10.4, 10.8, 9.8, 10.2, 
10.4, 11.2, 10.6, 10, 9.6, 10.2, 9.6, 9.6, 9.8, 10.2, 10.4, 9.2, 
9.8, 9.6, 9.6, 9.2, 9.2, 9.8, 8.6, 9.2, 9.4, 9.2, 9, 9, 9, 9, 
9.4, 9.4, 9.4, 9.2, 9.2, 9.6, 8.4, 8.8, 8.6, 8.6, 8.8, 8.6, 8.8, 
8.4, 8.8, 8.8, 9, 9, 9, 9, 8.8, 8.2, 9, 8.8, 8.6, 8.2, 8.8, 8.6, 
8.6, 8.4, 7.8, 7.8, 8, 8, 8.2, 8.2, 7.8, 8, 8.2, 8.6, 8, 8, 7.6, 
7.6, 7.8, 7.6, 7.6, 7.6, 8, 8, 7.6, 7.6, 7.4, 7.6, 7.4, 7.6, 
7.8, 7.4, 7.8, 6.8, 6.8, 6.6, 7.2, 7.2, 6.8, 7, 6.4, 6.6, 6.6, 
7, 6.6, 6.8, 7, 7.2, 7, 6.8, 6.8, 7, 6.8, 6.8, 6.4, 6.4, 6.4, 
6.4, 6.4, 6.6, 6.6, 6.4, 6, 6.8, 6.6, 6.4, 6, 6.4, 5.6, 6.2, 
5.8, 6, 6.2, 6.2, 6.2, 6, 6.2, 5.6, 5.6, 5.8, 6, 5.8, 5.8, 5.8, 
6, 5.8, 5.8, 5.8, 5.8, 6, 5.8, 5.6, 5.4, 5.8, 5.6, 6, 5.6, 5.6, 
6, 5.8, 5.4, 5.4, 5.2, 5.6, 5.6, 5.6, 5.4, 5.4, 5.2, 5.2, 5, 
5.2, 5.4, 5, 5.2, 5, 4.8, 5.2, 5, 6, 5.2, 5, 5, 5, 5, 4.8, 4.8, 
4.8, 5, 4.4, 4.4, 4.8, 5, 4.8, 5.2, 5, 4.4, 4.6, 5, 4.6, 5, 4.8, 
5, 4.4, 4.4, 4.4, 4.6, 4.6, 4.4, 4.4, 4.6, 4.6, 4.6, 4.4, 4.4, 
4.6, 4.4, 4.2, 4, 4.4, 4.4, 4.4, 4.2, 4, 4.4, 4.2, 4.4, 4.4, 
4.2, 4.2, 4.4, 4.2, 4.2, 4, 4.2, 4, 4, 4.2, 4, 4, 3.6, 4, 4, 
3.8, 3.6, 4, 3.8, 4, 3.8, 3.8, 3.8, 4, 3.8, 3.8, 3.8, 4, 4, 3.6, 
3.6, 4, 3.8, 3.8, 3.6, 3.6, 3.8, 3.8, 3.6, 3.8, 3.6, 3.6, 3.4, 
3.6, 3.8, 3.4, 3.6, 3.6, 3.8, 3.4, 3.6, 3.6, 3.6, 3.6, 3.2, 3.4, 
3.4, 3.4, 3.2, 3.6, 3.4, 3.2, 3.4, 3.4, 3.4, 3.2, 3.2, 3.2, 3.4, 
3.2, 3.2, 3, 3.2, 3.4, 3.4, 3.2, 3.2, 3.2, 3.2, 3.2, 3, 3, 3.2, 
3.2, 2.8, 3.2, 3.2, 3, 3, 2.8, 2.8, 3, 3, 3, 3, 3, 2.8, 3, 3, 
2.8, 2.8, 2.8, 2.8, 2.8, 3, 2.8, 3, 2.6, 3.2, 2.8, 2.6, 2.8, 
2.8, 2.8, 2.8, 2.6, 2.8, 2.8, 2.4, 2.6, 2.6, 2.6, 2.8, 2.6, 2.2, 
2.4, 2.6, 2.4, 2.4, 2.6, 2.4, 2.4, 2.4, 2.4, 2.4, 2.6, 2.4, 2.4, 
2.4, 2.4, 2.6, 2.4, 2.6, 2.4, 2.4, 2.4, 2.4, 2.2, 2.4, 2.4, 2.4, 
2.4, 2.4, 2.4, 2.4, 2.4, 2.6, 2.2, 2.4, 2.2, 2.2, 2.2, 2.2, 2.4, 
2.2, 2.2, 2.2, 2.2, 2.2, 2, 2.2, 2.2, 2.2, 2, 2.4, 2.4, 2.2, 
2.2, 2.2, 2.4, 2.2, 2.2, 2.2, 2.2, 2, 2, 2.2, 2.2, 2.2, 2.2, 
2.2)), row.names = 18388:19288, class = "data.frame")

First, create the bar chart:

barplot(table(sample_data$sensor4_calcstatus))

Now a table of frequencies:

tbl <- table(cut(sample_data$ref_conc, breaks=seq(0, 100, by=5)), sample_data$sensor4_calcstatus)
tbl
#           
#              1   2   3
#   (0,5]    281   0   0
#   (5,10]   150  17   0
#   (10,15]    8  92   0
#   (15,20]    0  58   0
#   (20,25]    0  36  20
#   (25,30]    0   0  43
#   (30,35]    2   0  30
#   (35,40]    0   0  39
#   (40,45]    1   0  18
#   (45,50]    0   0  28
#   (50,55]    1   1  43
#   (55,60]    5   1  22
#   (60,65]    0   0   0
#   (65,70]    0   0   0
#   (70,75]    0   0   0
#   (75,80]    0   0   0
#   (80,85]    0   0   0
#   (85,90]    2   0   0
#   (90,95]    0   0   0
#   (95,100]   0   0   0
par(mfrow=c(3, 1))
for (i in 1:3) barplot(tbl[, i], space=0, main=paste("Group", i))

Notice that you have two ref_conc values greater than 100: 131.4 and 600.0.

直方图

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM