国庆节前后,股市迎来了一波暴涨行情,吸引了大批投资者的目光。许多人被这波“财富效应”所吸引,纷纷投入股市,甚至有不少人暂时放下了自己的本职工作,全身心投入到股票交易中。办公室里常常出现一边盯着K线图、一边处理工作的“多线程模式”,甚至有人在会议上也时不时偷偷看盘,生怕错过任何一个涨停板。除了盯着大盘看价格涨跌,我们如何更有效地利用数据分析来理解股市呢?数据可视化是其中的关键工具。通过图形化的方式,我们可以直观地看到数据趋势、模式和关系,不仅能在股市中得心应手,也可以应用于各类数据分析场景。
今天的文章将带你通过R语言实现一系列常用数据可视化,包括K线图、移动平均线、回归图、饼图和相关矩阵图。希望这些图表能够为你的数据分析提供有力支持。
1. K线图(Candlestick Chart)
# 安装并加载所需包
# install.packages("quantmod")
library(quantmod)
# 获取模拟股票数据(AAPL从Yahoo Finance)
getSymbols("AAPL", src = "yahoo", from = "2023-01-01", to = "2023-10-01")
## [1] "AAPL"
# 绘制K线图并添加布林带
chartSeries(AAPL, type = "candlesticks", theme = chartTheme("white"),
TA="addVo();addBBands()",
name = "AAPL K线图")
2. 移动平均图(Moving Average Chart)
# 计算移动平均线
stock_data <- AAPL
stock_data$SMA_20 <- SMA(Cl(stock_data), n = 20) # 50天移动平均线
stock_data$SMA_30 <- SMA(Cl(stock_data), n = 30) # 150天移动平均线
# 绘制移动平均线图
chartSeries(stock_data, type = "line", theme = chartTheme("white"),
TA="addSMA(n=20, col='blue');addSMA(n=30, col='red')",
name = "AAPL 移动平均线")
3. 回归图(Regression Plot)
# 创建模拟数据集
set.seed(123)
x <- rnorm(100) # 模拟自变量(比如股票收益)
y <- 2 * x + rnorm(100) # 模拟因变量(比如股票价格)
# 绘制回归图
library(ggplot2)
df <- data.frame(x = x, y = y)
ggplot(df, aes(x = x, y = y)) +
geom_point(color = "darkgreen", size = 3, alpha = 0.7) +
geom_smooth(method = "lm", col = "blue", se = FALSE) +
labs(title = "股票收益与价格的回归分析", x = "收益", y = "价格") +
theme_minimal()
4. 饼图(Pie Chart)
# 模拟投资组合数据
portfolio <- data.frame(
stock = c("AAPL", "GOOG", "AMZN", "MSFT", "TSLA"),
value = c(30, 25, 15, 20, 10) # 各股票在组合中的比例
)
# 绘制饼图
ggplot(portfolio, aes(x = "", y = value, fill = stock)) +
geom_bar(width = 1, stat = "identity") +
coord_polar("y", start = 0) +
theme_void() +
labs(title = "投资组合分布") +
scale_fill_brewer(palette = "Set3")
5. 相关矩阵图(Correlation Matrix Plot) —— 变量间的关系网络
# 模拟多个股票的收益率数据
set.seed(123)
returns <- data.frame(
AAPL = rnorm(100),
GOOG = rnorm(100),
AMZN = rnorm(100),
MSFT = rnorm(100),
TSLA = rnorm(100)
)
# 计算相关性矩阵
cor_matrix <- cor(returns)
# 绘制相关性矩阵热力图
library(corrplot)
corrplot(cor_matrix, method = "color", tl.col = "black", tl.srt = 45,
title = "股票收益率相关性矩阵",
col = colorRampPalette(c("red", "white", "blue"))(200))
结语
(请点击标题查看)
科研代码 | 机器学习
ANOVA 描述性统计分析 主成分分析PCA 判别分析 PLSDA LDA KNN
异常值 贝叶斯统计 调用数据集 模型评价之准确率 Scikit-learn 数据预处理 API
无监督机器学习 SVM 监督式机器学习 特征选择 ANN SQL 数据转换 特征选择 冗余分析 数据导入 限制性立方样条时间序列分析 数据预处理 随机森林(RF)
散点图 相关性热图 柱状图 盒须图 小提琴图 R画地图 ggplot2 雷达图 圆形柱状图
文氏图 显著性差异 条形图 R配色 热图显著性标记 箱线图 XGBoost建模 3D散点图
科研代码 | 生产力工具
Pycharm Rstudio Dataspell VScode 四大数据分析软件 Copilot R语言教材 基础统计学 R语言入门 SPSS Python编辑器全比较 大名鼎鼎的文献管理软件
科研代码 | 世间万物
Peer pressure 走出舒适区 小老板保命守则 缺的是数据科学家 卷王之王 开放获取
感谢关注,你的支持是我不懈的动力!