使用r自带的数据集titanic,绘制以下图形
时间: 2023-05-08 22:00:14 浏览: 1166
使用r自带的数据集titanic,可以绘制多种图形,其中以下两种较为常见:
1. 饼图:展示在不同性别中,生还者与死亡者的比例。
首先将数据集中的性别列和生还列分别提取出来,然后用table()函数统计不同性别下生还和死亡的人数。在将统计结果传入pie()函数中即可绘制出饼图,其中可以通过设定colors参数来指定不同区块的颜色,也可以通过设置其他参数调整图形的大小、标签等。
2. 柱状图:展示不同舱位等级的人数及生还率。
同样是先在数据集中筛选出所需的列,然后使用count()函数统计不同舱位等级下的总人数和生还人数,再将结果传入ggplot()函数中,设定geom_col()和geom_text()图层,即可绘制出柱状图,同时在其中添加标签和标题可以使图形更加清晰易读。
需要注意的是,在绘制任何图形前,要充分理解数据集的特点,选择合适的图形类型和参数才能呈现出准确、直观的信息。此外,还需要掌握r语言的基本绘图函数和相关包的使用方法,才能更加高效地绘制图形。
相关问题
使用R自带的Titanic数据集绘制和弦图
在R语言中,你可以使用`tidyverse`包中的`ggraph`库来创建和弦图,不过首先你需要加载一些必要的数据集,如 Titanic 数据集。`ggplot2` 和 `ggraph` 提供了丰富的图形功能,包括绘制复杂网络结构,如社会网络、食物网等。
为了制作一个简单的和弦图,假设你想要分析Titanic乘客之间的关系,比如他们的年龄或性别之间的相互影响。以下是一个简化的步骤:
1. **加载所需包**:
```r
library(tidyverse) # 包含ggplot2和dplyr等常用数据处理和绘图函数
library(ggraph) # 用于创建社交网络图
```
2. **加载Titanic数据集**,如果你没有安装这个数据集,可以使用`data()`函数从`datasets`包获取:
```r
titanic <- datasets::get.geo("titanic")
```
3. **预处理数据**,选择你感兴趣的变量来构建和弦图的边。例如,如果想看男性和女性乘客之间年龄的关系,可以计算各年龄段的男性和女性人数:
```r
data_prep <- titanic %>%
group_by(Sex, AgeClass) %>%
summarize(count = n())
```
4. **创建和弦图**。这一步需要将数据转换成适合`ggraph`的格式:
```r
g_data <- data_prep %>%
mutate(id = paste0(Sex, AgeClass)) %>%
select(-count) %>%
as_tbl_graph()
```
5. **绘制和弦图**:
```r
gg_and_chord <- ggraph(g_data, layout = "fr") +
geom_edge_link(aes(width = count), alpha = 0.8) +
geom_node_point(color = "lightblue", size = 6) +
theme_void() +
labs(title = "Titanic乘客按性别和年龄分类")
ggplotly(gg_and_chord, tooltip = c("id", "count"))
```
使用r自带的数据集Titianic绘制以下图形1.绘制Sex和Class的并列条形图和堆叠条形图,并为条形图添加频数标签2.绘制Sex和Class热图
当然可以。在R语言中,我们可以使用`ggplot2`库来创建各种美观的图表,包括条形图和热图。首先,我们需要加载必要的数据集和包。
1. **绘制性别和等级的并列条形图和堆叠条形图**:
- 并列条形图(side-by-side bar chart):
```R
library(ggplot2)
data(Titanic) # 加载Titanic数据集
p1 <- ggplot(Titanic, aes(x = Class, fill = Sex)) +
geom_bar(position = "dodge", stat = "count") +
labs(title = "Titanic乘客按性别和等级分类",
x = "船舱等级", y = "人数", fill = "性别") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
print(p1)
```
- 堆叠条形图(stacked bar chart):
```R
p2 <- ggplot(Titanic, aes(x = Class, y = ..prop.., fill = Sex)) +
geom_bar(stat = "identity") +
labs(title = "Titanic乘客按性别分层的百分比",
x = "船舱等级", y = "%", fill = "性别") +
scale_fill_manual(values = c("male" = "blue", "female" = "pink")) +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
print(p2)
```
2. **绘制性别和等级的热图**:
R中的`seaborn`库更适合创建热图,但如果要用基础的`ggplot2`,需要先计算一些频率数据:
```R
# 先计算每个组合的频数
counts <- table(Titanic$Sex, Titanic$Class)
# 创建数据框以便于绘图
df_counts <- as.data.frame(cbind(Sex = levels(counts[,1]),
Class = levels(counts[,2]),
Count = unlist(counts)))
# 热图(假设ggplot2不直接支持)
library(reshape2) # 或使用tidyverse的pivot_wider
df_pivot <- melt(df_counts, id.vars = c("Sex", "Class"), variable.name = "Type")
p3 <- ggplot(df_pivot, aes(x = Class, y = Sex, fill = value)) +
geom_tile() +
scale_fill_viridis(discrete = TRUE) +
labs(title = "Titanic乘客性别与等级的交叉计数",
x = "船舱等级", y = "性别", fill = "计数") +
theme_minimal()
print(p3)
```
阅读全文
相关推荐
















