数据可视化与图形优化:从序数数据绘图到美学调整
立即解锁
发布时间: 2025-09-02 02:14:39 阅读量: 9 订阅数: 44 AIGC 


数据可视化与二语研究
### 数据可视化与图形优化:从序数数据绘图到美学调整
在数据分析和研究中,数据可视化是一项至关重要的技能。它不仅能帮助我们直观地理解数据,还能有效地传达研究结果。本文将深入探讨如何处理和可视化序数数据,以及如何优化图形的美学效果,使其更具专业性和可读性。
#### 1. 序数数据的可视化
在第二语言研究中,我们经常会遇到序数数据。例如,在一个假设的关系从句研究中,参与者被要求使用6点量表对自己的确定程度进行评分。这个量表只有端点被标记(1 = 不确定,6 = 确定)。
##### 1.1 标记问题
如果我们尝试标记量表上的所有点,会遇到两个问题。首先,想出合适的标签比我们想象的要困难。其次,量表上的点是等距的,但我们很难确定不同标签之间的距离是否相等。
##### 1.2 绘图方法
我们可以尝试将这个变量视为连续变量,并创建一个简单的带有误差线的条形图,其中y轴为确定程度,x轴为熟练程度。但需要注意的是,标量或序数数据点很少呈正态分布。我们可以通过创建直方图来检查这一点,结果通常会显示为均匀分布。
为了更保守地处理数据,我们可以对标准误差进行自助法估计。`stat_summary()` 函数默认假设变量呈正态分布,如果变量不满足这一条件,我们可以使用 `stat_summary(fun.data = mean_cl_boot)` 来生成自助法误差线。
除了传统的条形图,还有一种更符合序数数据性质的绘图方法,即堆叠条形图。不同深浅的灰色代表6点量表上的不同点,每个条形的高度表示每个确定程度水平在每个熟练程度水平和每个条件下的代表性。这种图形可以让我们直观地看到参与者的确定程度响应集中在哪里。
以下是生成堆叠条形图的R代码:
```R
# Check if Certainty is an ordered factor:
str(rc)
# Make Certainty an ordered factor:
rc = rc %>%
mutate(Certainty = as.ordered(Certainty))
# Prepare our data (generate percentages):
cert = rc %>%
filter(Type == "Target") %>%
group_by(Proficiency, Condition, Certainty) %>%
count() %>%
group_by(Proficiency, Condition) %>%
mutate(Prop = n / sum(n))
# Create bar plot:
ggplot(data = cert,
aes(x = Proficiency,
y = Prop,
fill = as.ordered(Certainty))) +
geom_bar(stat = "identity", width = 0.5, color = "black") +
facet_grid(sCondition, labeller = "label_both") +
theme_classic() +
scale_fill_brewer("Certainty", palette = "Greys", direction = 1)
# ggsave(file = "figures/certaintyPlot.jpg", width = 7, height = 2.5, dpi = 1000)
```
#### 2. 数据准备与绘图总结
在处理分类数据时,我们通常会将数据转换为计数或百分比,以便使用相同的可视化技术。以下是本章的简要总结:
- **分组数据**:使用 `group_by()` 函数按不同变量对数据进行分组,这是分析变量时的重要步骤。
- **二元响应变量**:对于二元响应变量,如高和低,我们通常在数据准备结束时删除其中一个选项,只绘制一个响应的百分比。
- **标量数据**:当数据中有标量变量时,R会将其分类为连续变量。
- **有序因子**:对于有序因子(序数或标量数据),我们有两种选择:一是将其视为连续变量,使用带有标准误差线的条形图;二是使用条形图和填充颜色来绘制量表上响应的百分比,此时需要将标量变量转换为有序因子。
#### 3. 图形美学优化
除了数据的可视化,图形的美学效果也非常重要。ggplot2 为我们提供了对图形美学的完全控制,这对于生成高质量的出版物图形至关重要。
##### 3.1 目标图形
我们的目标是创建一个优化后的图形,与之前的图形相比,它有许多重要的改进。例如,条形图变为水平方向,确定程度点直接显示在条形上,坐标轴标签更加清晰,添加了水平虚线分隔母语者和学习者,字体和大小也进行了调整。
##### 3.2 数据准备
在开始优化图形之前,我们需要进行一些数据准备工作。首先,安装并加载必要的包,如 `scales` 和 `extrafont`。然后,导入数据并将确定程度变量转换为有序因子。接着,计算每个确定程度水平的响应百分比。
以下是数据准备的R代码:
```R
library(tidyverse)
library(scales) # To get percentages on axis
library(extrafont)
loadfonts()
# Check which fonts are ava
```
0
0
复制全文