我是新的 R 用户。
我很难弄清楚如何将不同的条形图组合成一个图表。
例如,
假设中国排名前五的职业是政府雇员、CEO、医生、运动员、艺术家,收入(以美元计)分别为20000、17000、15000、14000和13000,而排名前五的职业是美国是医生、运动员、艺术家、律师、教师,收入(以美元计)分别为 40,000,35,000,30,000,25,000 和 20,000。
我想在一张图中显示差异。
我该怎么做?请注意它们有不同的名称。
我是新的 R 用户。
我很难弄清楚如何将不同的条形图组合成一个图表。
例如,
假设中国排名前五的职业是政府雇员、CEO、医生、运动员、艺术家,收入(以美元计)分别为20000、17000、15000、14000和13000,而排名前五的职业是美国是医生、运动员、艺术家、律师、教师,收入(以美元计)分别为 40,000,35,000,30,000,25,000 和 20,000。
我想在一张图中显示差异。
我该怎么做?请注意它们有不同的名称。
这个问题的答案相当直截了当。作为新的 R 用户,我建议您自由使用“ggplot2”包。对于很多 R 用户来说,这一包就足够了。
要获得原始帖子中描述的“组合”条形图,答案是将所有数据放入一个数据集中,然后添加分组变量,如下所示:
第 1 步:制作数据集。
data <- read.table(text="
Country,Profession,Income
China,Government employee,20000
China,CEO,17000
China,Doctor,15000
China,Athlete,14000
China,Artist,13000
USA,Doctor,40000
USA,Athlete,35000
USA,Artist,30000
USA,Lawyer,25000
USA,Teacher,20000", header=TRUE, sep=",")
你会注意到我在这里使用了“read.table”函数。这不是必需的,纯粹是为了本示例的可读性。重要的部分是我们有我们的价值观(收入)和我们的分组变量(国家、职业)。
第 2 步:创建一个条形图,将收入作为条形的高度,将职业作为 x 轴,并按国家/地区为条形着色。
library(ggplot2)
ggplot(data, aes(x=Profession, y=Income, fill=Country)) +
geom_bar(stat="identity", position="dodge") +
theme(axis.text.x = element_text(angle = 90))
在这里,我们首先加载“ggplot2”包。您可能需要安装它。
然后,我们指定要使用哪些数据以及如何将其分离。
ggplot(data, aes(x=Profession, y=Income, fill=Country))
这告诉“ggplot”在“数据”数据框中使用我们的数据集。该aes()
命令指定“ggplot”应如何读取数据。我们将分组变量 Profession 映射到 x 轴,将收入映射到 y 轴,并根据分组变量 Country 更改每个条形的颜色(填充)。
接下来,我们指定我们想要什么样的条形图。
geom_bar(stat="identity", position="dodge")
这告诉 'ggplot' 制作一个条形图 ( geom_bar()
)。默认情况下,“geom_bar”函数会尝试制作直方图,但我们已经有了想要使用的总数。我们告诉它使用我们的总数,方法是指定收入中表示的统计类型是我们想要绘制图表的总数或实际值(身份)(stat="identity"
)。最后,我对如何显示数据进行了判断,并决定在单个职业有多个收入值时将一组数据并排设置(position="dodge"
)。
最后,我们需要旋转 x 轴标签,因为其中一些标签很长。我们使用一个简单的“主题”命令来完成此操作,该命令可以更改 x 轴文本元素的旋转。
theme(axis.text.x = element_text(angle = 90))
我们将所有这些命令与 链接在一起+
,就完成了!