我正在尝试从我创建的长格式数据框中制作堆叠的条形图。条形图的格式确实正确,但是数据与数据框中的数据不正确。这是我的数据:
1 Macrolides X3 2.85
2 Penicillins X3 6.64
3 Cephalosporins X3 1.70
4 Quinolones X3 1.36
5 Tetracyclines X3 1.19
6 Macrolides Belgium 2.62
7 Penicillins Belgium 16.28
8 Cephalosporins Belgium 1.59
9 Quinolones Belgium 2.69
10 Tetracyclines Belgium 2.10
11 Macrolides Bulgaria 2.49
12 Penicillins Bulgaria 8.05
13 Cephalosporins Bulgaria 2.32
14 Quinolones Bulgaria 1.99
15 Tetracyclines Bulgaria 1.71
16 Macrolides Cyprus 2.86
17 Penicillins Cyprus 14.43
18 Cephalosporins Cyprus 5.41
19 Quinolones Cyprus 4.10
20 Tetracyclines Cyprus 3.27
21 Macrolides Czech 3.25
22 Penicillins Czech 7.60
23 Cephalosporins Czech 1.62
24 Quinolones Czech 1.22
25 Tetracyclines Czech 2.27
26 Macrolides Denmark 2.34
27 Penicillins Denmark 10.29
28 Cephalosporins Denmark 0.03
29 Quinolones Denmark 0.51
30 Tetracyclines Denmark 1.70
31 Macrolides Estonia 2.06
32 Penicillins Estonia 4.22
33 Cephalosporins Estonia 0.88
34 Quinolones Estonia 0.81
35 Tetracyclines Estonia 1.89
36 Macrolides Finland 1.23
37 Penicillins Finland 6.61
38 Cephalosporins Finland 2.33
39 Quinolones Finland 0.88
40 Tetracyclines Finland 4.09
41 Macrolides France 2.63
42 Penicillins France 15.62
43 Cephalosporins France 2.67
44 Quinolones France 2.00
45 Tetracyclines France 3.16
46 Macrolides Germany 2.09
47 Penicillins Germany 4.10
48 Cephalosporins Germany 2.61
49 Quinolones Germany 1.51
50 Tetracyclines Germany 2.74
51 Macrolides Greece 8.55
52 Penicillins Greece 12.87
53 Cephalosporins Greece 8.91
54 Quinolones Greece 2.89
55 Tetracyclines Greece 2.31
56 Macrolides Hungary 2.42
57 Penicillins Hungary 6.69
58 Cephalosporins Hungary 1.92
59 Quinolones Hungary 1.97
60 Tetracyclines Hungary 1.38
61 Macrolides Iceland 1.40
62 Penicillins Iceland 12.08
63 Cephalosporins Iceland 0.62
64 Quinolones Iceland 1.02
65 Tetracyclines Iceland 5.05
66 Macrolides Ireland 3.63
67 Penicillins Ireland 10.65
68 Cephalosporins Ireland 1.21
69 Quinolones Ireland 0.91
70 Tetracyclines Ireland 2.60
71 Macrolides Italy 4.98
72 Penicillins Italy 14.55
73 Cephalosporins Italy 2.55
74 Quinolones Italy 3.45
75 Tetracyclines Italy 0.53
76 Macrolides Lativa 1.03
77 Penicillins Lativa 5.59
78 Cephalosporins Lativa 0.57
79 Quinolones Lativa 0.91
80 Tetracyclines Lativa 2.38
81 Macrolides Lithuania 1.44
82 Penicillins Lithuania 6.99
83 Cephalosporins Lithuania 0.80
84 Quinolones Lithuania 0.83
85 Tetracyclines Lithuania 1.38
86 Macrolides Luxembourg 3.46
87 Penicillins Luxembourg 13.96
88 Cephalosporins Luxembourg 4.18
89 Quinolones Luxembourg 2.94
90 Tetracyclines Luxembourg 2.04
91 Macrolides Malta 2.97
92 Penicillins Malta 9.80
93 Cephalosporins Malta 5.04
94 Quinolones Malta 1.79
95 Tetracyclines Malta 1.02
96 Macrolides Netherlands 1.31
97 Penicillins Netherlands 4.36
98 Cephalosporins Netherlands 0.04
99 Quinolones Netherlands 0.87
100 Tetracyclines Netherlands 2.66
101 Macrolides Norway 1.55
102 Penicillins Norway 6.77
103 Cephalosporins Norway 0.12
104 Quinolones Norway 0.54
105 Tetracyclines Norway 2.77
106 Macrolides Poland 2.89
107 Penicillins Poland 9.43
108 Cephalosporins Poland 2.44
109 Quinolones Poland 1.23
110 Tetracyclines Poland 2.10
111 Macrolides Portugal 3.37
112 Penicillins Portugal 12.08
113 Cephalosporins Portugal 1.81
114 Quinolones Portugal 2.97
115 Tetracyclines Portugal 0.71
116 Macrolides Slovenia 1.89
117 Penicillins Slovenia 9.67
118 Cephalosporins Slovenia 0.40
119 Quinolones Slovenia 1.10
120 Tetracyclines Slovenia 0.04
121 Macrolides Spain 1.88
122 Penicillins Spain 12.64
123 Cephalosporins Spain 1.56
124 Quinolones Spain 2.54
125 Tetracyclines Spain 0.70
126 Macrolides Sweden 0.43
127 Penicillins Sweden 7.09
128 Cephalosporins Sweden 0.20
129 Quinolones Sweden 0.77
130 Tetracyclines Sweden 3.33
131 Macrolides UK 2.71
132 Penicillins UK 8.60
133 Cephalosporins UK 0.55
134 Quinolones UK 0.46
135 Tetracyclines UK 4.15
这是我制作条形图和图片的代码。如您所见,图表中的比例不正确,例如与其他抗生素相比,青霉素的使用价值很高,但我的图表中未显示。我不确定我做错了什么。
barchart <- ggplot(data=chart.new, aes(x = Country, y = DailyDosage, fill = Group, group = Group)) +
geom_bar(stat = "identity") +
coord_flip() +
scale_fill_manual(values = cbPalette) +
labs(title = "Antibiotic Consumption by Group ") +
theme(legend.position = "top")
类似于@DaveGruenewald,使用您的代码和数据,我得到了正确的值。我注意到当您在侧面显示带有图例的情节时,您有主题(legend.position =“ top”)。是相同的代码,以供参考,您可以尝试下面的内容。
我在上表中使用的是:
chart.new=dput(chart.new)
structure(list(Group = structure(c(2L, 3L, 1L, 4L, 5L, 2L, 3L,
1L, 4L, 5L, 2L, 3L, 1L, 4L, 5L, 2L, 3L, 1L, 4L, 5L, 2L, 3L, 1L,
4L, 5L, 2L, 3L, 1L, 4L, 5L, 2L, 3L, 1L, 4L, 5L, 2L, 3L, 1L, 4L,
5L, 2L, 3L, 1L, 4L, 5L, 2L, 3L, 1L, 4L, 5L, 2L, 3L, 1L, 4L, 5L,
2L, 3L, 1L, 4L, 5L, 2L, 3L, 1L, 4L, 5L, 2L, 3L, 1L, 4L, 5L, 2L,
3L, 1L, 4L, 5L, 2L, 3L, 1L, 4L, 5L, 2L, 3L, 1L, 4L, 5L, 2L, 3L,
1L, 4L, 5L, 2L, 3L, 1L, 4L, 5L, 2L, 3L, 1L, 4L, 5L, 2L, 3L, 1L,
4L, 5L, 2L, 3L, 1L, 4L, 5L, 2L, 3L, 1L, 4L, 5L, 2L, 3L, 1L, 4L,
5L, 2L, 3L, 1L, 4L, 5L, 2L, 3L, 1L, 4L, 5L, 2L, 3L, 1L, 4L, 5L
), .Label = c("Cephalosporins", "Macrolides", "Penicillins",
"Quinolones", "Tetracyclines"), class = "factor"), Country = structure(c(27L,
27L, 27L, 27L, 27L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L,
3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 6L, 6L,
6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 8L, 9L, 9L, 9L,
9L, 9L, 10L, 10L, 10L, 10L, 10L, 11L, 11L, 11L, 11L, 11L, 12L,
12L, 12L, 12L, 12L, 13L, 13L, 13L, 13L, 13L, 14L, 14L, 14L, 14L,
14L, 15L, 15L, 15L, 15L, 15L, 16L, 16L, 16L, 16L, 16L, 17L, 17L,
17L, 17L, 17L, 18L, 18L, 18L, 18L, 18L, 19L, 19L, 19L, 19L, 19L,
20L, 20L, 20L, 20L, 20L, 21L, 21L, 21L, 21L, 21L, 22L, 22L, 22L,
22L, 22L, 23L, 23L, 23L, 23L, 23L, 24L, 24L, 24L, 24L, 24L, 25L,
25L, 25L, 25L, 25L, 26L, 26L, 26L, 26L, 26L), .Label = c("Belgium",
"Bulgaria", "Cyprus", "Czech", "Denmark", "Estonia", "Finland",
"France", "Germany", "Greece", "Hungary", "Iceland", "Ireland",
"Italy", "Lativa", "Lithuania", "Luxembourg", "Malta", "Netherlands",
"Norway", "Poland", "Portugal", "Slovenia", "Spain", "Sweden",
"UK", "X3"), class = "factor"), DailyDosage = c(2.85, 6.64, 1.7,
1.36, 1.19, 2.62, 16.28, 1.59, 2.69, 2.1, 2.49, 8.05, 2.32, 1.99,
1.71, 2.86, 14.43, 5.41, 4.1, 3.27, 3.25, 7.6, 1.62, 1.22, 2.27,
2.34, 10.29, 0.03, 0.51, 1.7, 2.06, 4.22, 0.88, 0.81, 1.89, 1.23,
6.61, 2.33, 0.88, 4.09, 2.63, 15.62, 2.67, 2, 3.16, 2.09, 4.1,
2.61, 1.51, 2.74, 8.55, 12.87, 8.91, 2.89, 2.31, 2.42, 6.69,
1.92, 1.97, 1.38, 1.4, 12.08, 0.62, 1.02, 5.05, 3.63, 10.65,
1.21, 0.91, 2.6, 4.98, 14.55, 2.55, 3.45, 0.53, 1.03, 5.59, 0.57,
0.91, 2.38, 1.44, 6.99, 0.8, 0.83, 1.38, 3.46, 13.96, 4.18, 2.94,
2.04, 2.97, 9.8, 5.04, 1.79, 1.02, 1.31, 4.36, 0.04, 0.87, 2.66,
1.55, 6.77, 0.12, 0.54, 2.77, 2.89, 9.43, 2.44, 1.23, 2.1, 3.37,
12.08, 1.81, 2.97, 0.71, 1.89, 9.67, 0.4, 1.1, 0.04, 1.88, 12.64,
1.56, 2.54, 0.7, 0.43, 7.09, 0.2, 0.77, 3.33, 2.71, 8.6, 0.55,
0.46, 4.15)), class = "data.frame", row.names = c(NA, 135L))
正在检查图表。新:
str(chart.new)
'data.frame': 135 obs. of 3 variables:
$ Group : Factor w/ 5 levels "Cephalosporins",..: 2 3 1 4 5 2 3 1 4 5 ...
$ Country : Factor w/ 27 levels "Belgium","Bulgaria",..: 27 27 27 27 27 1 1 1 1 1 ...
$ DailyDosage: num 2.85 6.64 1.7 1.36 1.19 ...
使用默认颜色:
ggplot(data=chart.new ,aes(x = Country, y = DailyDosage, fill = Group, group = Group))+
geom_bar(stat = "identity")+ coord_flip() +
labs(title = "Antibiotic Consumption by Group ")+
theme(legend.position = "top")