R - 条形图:初学者的美化可视化指南

你好,有抱负的数据可视化者!我很高兴能成为你进入R语言和条形图世界的向导。作为一个教授计算机科学超过十年的人,我可以告诉你,创建视觉上吸引人的图表不仅仅是一项技能——它是一种艺术形式。今天,我们将使用R语言把你们都变成艺术家!

R - Bar Charts

条形图是什么?

在我们深入代码之前,让我们先了解一下条形图是什么。想象你在一个聚会上,想要比较你朋友们的身高。你可以不用让他们靠墙站排,而是画出代表每个人身高的矩形。条形图本质上就是这样做的——它使用矩形条来展示不同类别之间的比较。

现在,让我们用一些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:我们给每个条赋予与其口味相匹配的颜色。有趣吧?
  • mainxlabylab:这些给我们的图表添加了一个标题和轴标签。
  • 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.textargs.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