You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

R语言:如何用不同颜色绘制CSV多列数据

解决R语言绘制多列数据不同颜色散点图的问题

嗨,刚接触R语言就能画出单列散点图已经很棒啦!多列数据用不同颜色绘制其实没那么复杂,我给你分享两种新手友好的方法,你可以根据自己的习惯选:

方法一:用基础绘图系统(plot + points)

这种方法不需要额外装包,适合快速上手。核心思路是先画第一列数据,再用points()函数依次添加其他列,每列指定不同颜色。

假设你的CSV数据结构是这样的:

year, score1, score2, score3
2010, 85, 78, 92
2011, 88, 81, 90
...

对应的代码示例:

# 读取CSV文件(把路径换成你自己的文件路径)
my_data <- read.csv("your_data.csv")

# 先绘制第一列数据,设置坐标轴标签和点样式
plot(
  x = my_data$year, 
  y = my_data$score1, 
  col = "#E74C3C",  # 红色
  pch = 16,         # 实心圆点
  xlab = "年份", 
  ylab = "分数", 
  main = "不同类别分数散点图"
)

# 添加第二列数据,用蓝色
points(my_data$year, my_data$score2, col = "#3498DB", pch = 16)

# 添加第三列数据,用绿色
points(my_data$year, my_data$score3, col = "#2ECC71", pch = 16)

# 最后添加图例,方便区分不同列
legend(
  "topright",  # 图例位置,可换成"bottomleft"等
  legend = c("分数1", "分数2", "分数3"),
  col = c("#E74C3C", "#3498DB", "#2ECC71"),
  pch = 16
)

方法二:用ggplot2包(更推荐,适合复杂数据)

ggplot2是R中最流行的绘图包之一,只要把数据转换成长格式,就能自动帮你分配颜色、生成图例,操作更省心。

步骤1:安装并加载必要的包

# 第一次使用时安装包
install.packages(c("ggplot2", "tidyr"))

# 加载包
library(ggplot2)
library(tidyr)

步骤2:读取数据并转换格式

把原来的“宽格式”(每列一个分数类型)转换成“长格式”(一列存分数类型,一列存分数值):

# 读取数据
my_data <- read.csv("your_data.csv")

# 转换为长格式
long_data <- pivot_longer(
  data = my_data,
  cols = starts_with("score"),  # 匹配所有以score开头的列,可换成具体列名如c("数学", "语文")
  names_to = "分数类型",        # 新列名:存储原来的列名(比如score1)
  values_to = "分数"            # 新列名:存储对应的分数值
)

步骤3:绘制散点图

ggplot(long_data, aes(x = year, y = 分数, color = 分数类型)) +
  geom_point(size = 3) +  # 设置点的大小
  labs(
    x = "年份", 
    y = "分数", 
    title = "不同类别分数散点图",
    color = "分数类别"    # 修改图例标题
  ) +
  theme_minimal()  # 可选:用简约主题美化图表

小提示

  • 如果你的年份列是字符类型(比如带引号),可以用my_data$year <- as.numeric(my_data$year)转换成数值型,避免绘图出错。
  • 颜色代码可以换成你喜欢的,比如直接写"red"、"blue",或者用十六进制颜色码更精准。

内容的提问来源于stack exchange,提问作者Kevin Choi

火山引擎 最新活动