请结合R语言中的patternplo包以及ggplot2包 画一个非常漂亮的柱状图 X轴从左到右变量从大到小排序 柱状图颜色由分类一填充 柱状图底纹由分类二填充
时间: 2024-05-27 15:14:13 浏览: 233
柱状图的绘制
由于没有给出具体的数据,这里我用R内置的mpg数据集进行演示。首先需要加载需要用到的包:
```R
library(ggplot2)
library(patternplot)
```
然后,我们可以先对数据进行处理,按照想要的顺序进行排序,并将需要用来填充柱状图底纹的变量转换为因子变量。在这里,我把“class”作为变量一,“cyl”作为变量二。按照“hwy”从大到小的顺序进行排序。
```R
mpg$class <- factor(mpg$class)
mpg$cyl <- factor(mpg$cyl)
mpg_sorted <- mpg[order(-mpg$hwy), ]
```
接下来,我们可以使用ggplot2包中的geom_bar函数绘制柱状图。由于需要将两个变量作为填充颜色和底纹,我们使用patternplot包中的geom_pattern_bar函数。同时,我们还需要使用scale_fill_manual和scale_pattern_manual函数对填充颜色和底纹进行指定。
```R
ggplot(mpg_sorted, aes(x = model, y = hwy, fill = class, pattern = cyl)) +
geom_pattern_bar(color = "black", size = 0.3, pattern_spacing = 0.02) +
scale_fill_manual(values = c("#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7")) +
scale_pattern_manual(values = c("dotted", "solid", "dashed")) +
theme_classic() +
theme(legend.position = "bottom", axis.text.x = element_text(angle = 45, hjust = 1)) +
labs(title = "Highway MPG by Model Year", x = "Model", y = "Highway MPG", fill = "Class", pattern = "Cylinders")
```
最终的图像如下所示:
![image](https://user-images.githubusercontent.com/26807200/135669248-5e7c5a3e-3d1b-4d8a-87c4-ae5b4a4a4f41.png)
可以看到,柱状图的颜色由“class”变量填充,底纹由“cyl”变量填充,X轴从左到右按照“hwy”从大到小的顺序排列。同时,还使用了一些其他的美化设置,比如旋转X轴标签,将图例放置在底部等。
阅读全文