R - 条形图:初学者的美化可视化指南
你好,有抱负的数据可视化者!我很高兴能成为你进入R语言和条形图世界的向导。作为一个教授计算机科学超过十年的人,我可以告诉你,创建视觉上吸引人的图表不仅仅是一项技能——它是一种艺术形式。今天,我们将使用R语言把你们都变成艺术家!
条形图是什么?
在我们深入代码之前,让我们先了解一下条形图是什么。想象你在一个聚会上,想要比较你朋友们的身高。你可以不用让他们靠墙站排,而是画出代表每个人身高的矩形。条形图本质上就是这样做的——它使用矩形条来展示不同类别之间的比较。
现在,让我们用一些R代码来实践一下吧!
基本条形图
让我们从一个简单的例子开始。假设我们想要可视化不同口味的冰淇淋销量。
# 创建一个冰淇淋口味的向量
flavors <- c("香草", "巧克力", "草莓", "薄荷")
# 创建一个销售冰淇淋球的向量
scoops <- c(50, 75, 30, 45)
# 创建条形图
barplot(scoops, names.arg = flavors)
当你运行这段代码时,你会看到一个基本的条形图。每个条代表一种口味,它的高度代表销售的冰淇淋球数量。简单吧?但它看起来有点单调。让我们来给它加点活力!
条形图的标签、标题和颜色
现在,让我们使我们的图表更加信息和视觉吸引。
# 创建一个更有吸引力的条形图
barplot(scoops,
names.arg = flavors,
col = c("象牙白", "巧克力色", "粉红色", "浅绿色"),
main = "按口味划分的冰淇淋销量",
xlab = "口味",
ylab = "销售的冰淇淋球数量",
border = "深灰色",
ylim = c(0, 100))
# 在每个条上添加文本标签
text(x = 1:length(scoops), y = scoops, labels = scoops, pos = 3, cex = 0.8)
让我们分解一下:
-
col
:我们给每个条赋予与其口味相匹配的颜色。有趣吧? -
main
、xlab
、ylab
:这些给我们的图表添加了一个标题和轴标签。 -
border
:这给我们的条添加了一个边框。 -
ylim
:这设置了我们的y轴范围。 -
text()
函数在每个条上添加标签,显示确切的冰淇淋球数量。
运行这段代码,然后你就会得到一个专业外观的条形图,即使是戈登·拉姆齐(如果他是一个数据科学家的话)也会赞许。
分组条形图
现在,让我们升级一下。假设我们想要比较不同月份的冰淇淋销量。这需要一个分组条形图!
# 创建一个冰淇淋销售的矩阵
sales <- matrix(c(50, 75, 30, 45,
60, 80, 40, 50,
45, 70, 35, 40),
nrow = 3, byrow = TRUE)
# 设置列名(口味)和行名(月份)
colnames(sales) <- c("香草", "巧克力", "草莓", "薄荷")
rownames(sales) <- c("六月", "七月", "八月")
# 创建一个分组条形图
barplot(sales,
beside = TRUE,
col = c("天蓝色", "粉红色", "浅绿色"),
legend.text = rownames(sales),
args.legend = list(x = "topright", bty = "n"),
main = "按口味和月份划分的冰淇淋销量",
xlab = "口味",
ylab = "销售的冰淇淋球数量")
在这里,beside = TRUE
告诉R并排放置条而不是堆叠它们。legend.text
和 args.legend
参数为我们的图表添加了图例。
堆叠条形图
最后但并非最不重要的是,让我们创建一个堆叠条形图。这是当你想要展示总数和组成时完美的选择。
# 创建一个堆叠条形图
barplot(sales,
col = c("天蓝色", "粉红色", "浅绿色"),
legend.text = rownames(sales),
args.legend = list(x = "topright", bty = "n"),
main = "按口味划分的总冰淇淋销量",
xlab = "口味",
ylab = "总销售的冰淇淋球数量")
这里唯一的区别是我们移除了 beside = TRUE
。现在,每个口味的条被堆叠起来,展示总数以及每个月的贡献。
结论
就这样,朋友们!你们刚刚学习了如何在R中创建基本、分组和堆叠的条形图。记住,掌握这个的关键是练习。尝试改变颜色,添加更多的数据,甚至动画化你的图表(是的,在R中这是可能的)!
这里是一个我们使用的主要函数的快速参考表:
函数 | 描述 |
---|---|
barplot() |
创建条形图 |
text() |
在图表中添加文本 |
legend() |
在图表中添加图例 |
matrix() |
创建矩阵 |
c() |
将值组合成向量或列表 |
记住,数据可视化都是关于用你的数据讲述一个故事。所以,继续实验,让你的数据通过美丽的条形图来说话!
快乐编码,愿你的条形图总是完美对齐!
Credits: Image by storyset