【数据可视化-41】15年NVDA, AAPL, MSFT, GOOGL & AMZ股票数据集可视化分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907
💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

【数据可视化-41】15年NVDA, AAPL, MSFT, GOOGL & AMZ股票数据集可视化分析

    • 一、引言
    • 二、数据探索
      • [2.1 数据集介绍](#2.1 数据集介绍)
      • [2.2 数据清洗探索](#2.2 数据清洗探索)
    • 三、单维度特征可视化
      • [3.1 各股票收盘价分布](#3.1 各股票收盘价分布)
      • [3.2 各股票交易量分布](#3.2 各股票交易量分布)
    • 四、时间序列分析
      • [4.1 各股票收盘价趋势](#4.1 各股票收盘价趋势)
      • [4.2 各股票最高价与最低价趋势](#4.2 各股票最高价与最低价趋势)
    • 五、多维度特征分析
      • [5.1 开盘价与收盘价关系](#5.1 开盘价与收盘价关系)
      • [5.2 收盘价与交易量关系](#5.2 收盘价与交易量关系)
      • [5.3 多股票对比分析(以交易量为例)](#5.3 多股票对比分析(以交易量为例))
    • 六、完整代码

一、引言

在金融市场分析中,数据可视化是揭示股票趋势、探索市场模式的强大工具。本文将利用包含15年期股票数据的数据集,涵盖NVDA、AAPL、MSFT、GOOGL和AMZN五支股票,从多个维度进行可视化分析,深入探讨各股票价格走势及相互关系。以下分析包括完整的Python代码实现,可供读者参考和复现。

二、数据探索

2.1 数据集介绍

该数据集包含以下变量:

  • Date:交易日期
  • Close_AAPL:苹果收盘价
  • Close_AMZN:亚马逊收盘价
  • Close_GOOGL:谷歌收盘价
  • Close_MSFT:微软收盘价
  • Close_NVDA:英伟达收盘价
  • High_AAPL:苹果最高价
  • High_AMZN:亚马逊最高价
  • High_GOOGL:谷歌最高价
  • High_MSFT:微软最高价
  • High_NVDA:英伟达最高价
  • Low_AAPL:苹果最低价
  • Low_AMZN:亚马逊最低价
  • Low_GOOGL:谷歌最低价
  • Low_MSFT:微软最低价
  • Low_NVDA:英伟达最低价
  • Open_AAPL:苹果开盘价
  • Open_AMZN:亚马逊开盘价
  • Open_GOOGL:谷歌开盘价
  • Open_MSFT:微软开盘价
  • Open_NVDA:英伟达开盘价
  • Volume_AAPL:苹果交易量
  • Volume_AMZN:亚马逊交易量
  • Volume_GOOGL:谷歌交易量
  • Volume_MSFT:微软交易量
  • Volume_NVDA:英伟达交易量

2.2 数据清洗探索

python 复制代码
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

# 加载数据
df = pd.read_csv('stock_data.csv')  # 请替换为实际文件路径

# 查看数据基本信息
print(df.info())

从数据基本信息可发现:

  • 数据共26个维度,包含类别型和数值类型,只有Date字段为类别型。
  • 数据一共存在3774条数据记录,无缺失值的存在。

三、单维度特征可视化

3.1 各股票收盘价分布

python 复制代码
plt.figure(figsize=(12, 6))
for stock in ['Close_AAPL', 'Close_AMZN', 'Close_GOOGL', 'Close_MSFT', 'Close_NVDA']:
    sns.kdeplot(df[stock], label=stock.split('_')[1])
plt.title('Distribution of Closing Prices')
plt.xlabel('Price')
plt.ylabel('Density')
plt.legend()
plt.show()

3.2 各股票交易量分布

python 复制代码
plt.figure(figsize=(12, 6))
for stock in ['Volume_AAPL', 'Volume_AMZN', 'Volume_GOOGL', 'Volume_MSFT', 'Volume_NVDA']:
    sns.histplot(df[stock], bins=30, kde=True, label=stock.split('_')[1])
plt.title('Distribution of Trading Volumes')
plt.xlabel('Volume')
plt.ylabel('Count')
plt.legend()
plt.show()

四、时间序列分析

4.1 各股票收盘价趋势

python 复制代码
plt.figure(figsize=(14, 8))
for stock in ['Close_AAPL', 'Close_AMZN', 'Close_GOOGL', 'Close_MSFT', 'Close_NVDA']:
    sns.lineplot(x='Date', y=stock, data=df, label=stock.split('_')[1])
plt.title('Stock Price Trends Over 15 Years')
plt.xlabel('Date')
plt.ylabel('Closing Price')
plt.legend()
plt.tight_layout()
plt.show()

4.2 各股票最高价与最低价趋势

python 复制代码
stocks = ['AAPL', 'AMZN', 'GOOGL', 'MSFT', 'NVDA']
plt.figure(figsize=(14, 8))
for stock in stocks:
    plt.subplot(3, 2, stocks.index(stock) + 1)
    sns.lineplot(x='Date', y=f'High_{stock}', data=df, label='High')
    sns.lineplot(x='Date', y=f'Low_{stock}', data=df, label='Low')
    plt.title(f'{stock} High vs Low Prices')
    plt.xlabel('Date')
    plt.ylabel('Price')
plt.tight_layout()
plt.show()

五、多维度特征分析

5.1 开盘价与收盘价关系

python 复制代码
plt.figure(figsize=(14, 8))
for stock in stocks:
    plt.subplot(3, 2, stocks.index(stock) + 1)
    sns.scatterplot(x=f'Open_{stock}', y=f'Close_{stock}', data=df, alpha=0.7)
    plt.title(f'{stock} Open vs Close Prices')
    plt.xlabel('Open Price')
    plt.ylabel('Close Price')
plt.tight_layout()
plt.show()

5.2 收盘价与交易量关系

python 复制代码
plt.figure(figsize=(14, 8))
for stock in stocks:
    plt.subplot(3, 2, stocks.index(stock) + 1)
    sns.scatterplot(x=f'Close_{stock}', y=f'Volume_{stock}', data=df, alpha=0.7)
    plt.title(f'{stock} Closing Price vs Trading Volume')
    plt.xlabel('Closing Price')
    plt.ylabel('Volume')
plt.tight_layout()
plt.show()

5.3 多股票对比分析(以交易量为例)

python 复制代码
plt.figure(figsize=(14, 8))
for stock in stocks:
    sns.lineplot(x='Date', y=f'Volume_{stock}', data=df, label=stock)
plt.title('Comparison of Stock Volume Prices Over 15 Years')
plt.xlabel('Date')
plt.ylabel('Closing Price')
plt.legend()
plt.tight_layout()
plt.show()

从以上可视化分析可以看出:

  • 价格分布:不同股票的价格分布差异显著,反映了各公司的市场定位和规模。
  • 交易量分布:交易量波动反映了市场活跃度和投资者兴趣。
  • 价格趋势:长期趋势显示各股票的增长模式,科技股通常表现强劲。
  • 开盘价与收盘价关系:通常存在正相关关系,开盘价较高往往预示着收盘价较高。
  • 收盘价与交易量关系:交易量高峰可能对应价格的剧烈波动,反映市场情绪变化。

以上分析为理解股票市场趋势和投资机会提供了多维度视角,为投资者决策提供了数据支持。

六、完整代码

python 复制代码
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

# 加载数据
df = pd.read_csv('stock_data.csv')  # 请替换为实际文件路径

# 查看数据基本信息
print(df.info())


plt.figure(figsize=(12, 6))
for stock in ['Close_AAPL', 'Close_AMZN', 'Close_GOOGL', 'Close_MSFT', 'Close_NVDA']:
    sns.kdeplot(df[stock], label=stock.split('_')[1])
plt.title('Distribution of Closing Prices')
plt.xlabel('Price')
plt.ylabel('Density')
plt.legend()
plt.show()


plt.figure(figsize=(12, 6))
for stock in ['Volume_AAPL', 'Volume_AMZN', 'Volume_GOOGL', 'Volume_MSFT', 'Volume_NVDA']:
    sns.histplot(df[stock], bins=30, kde=True, label=stock.split('_')[1])
plt.title('Distribution of Trading Volumes')
plt.xlabel('Volume')
plt.ylabel('Count')
plt.legend()
plt.show()


plt.figure(figsize=(14, 8))
for stock in ['Close_AAPL', 'Close_AMZN', 'Close_GOOGL', 'Close_MSFT', 'Close_NVDA']:
    sns.lineplot(x='Date', y=stock, data=df, label=stock.split('_')[1])
plt.title('Stock Price Trends Over 15 Years')
plt.xlabel('Date')
plt.ylabel('Closing Price')
plt.legend()
plt.tight_layout()
plt.show()


stocks = ['AAPL', 'AMZN', 'GOOGL', 'MSFT', 'NVDA']
plt.figure(figsize=(14, 8))
for stock in stocks:
    plt.subplot(3, 2, stocks.index(stock) + 1)
    sns.lineplot(x='Date', y=f'High_{stock}', data=df, label='High')
    sns.lineplot(x='Date', y=f'Low_{stock}', data=df, label='Low')
    plt.title(f'{stock} High vs Low Prices')
    plt.xlabel('Date')
    plt.ylabel('Price')
plt.tight_layout()
plt.show()


plt.figure(figsize=(14, 8))
for stock in stocks:
    plt.subplot(3, 2, stocks.index(stock) + 1)
    sns.scatterplot(x=f'Open_{stock}', y=f'Close_{stock}', data=df, alpha=0.7)
    plt.title(f'{stock} Open vs Close Prices')
    plt.xlabel('Open Price')
    plt.ylabel('Close Price')
plt.tight_layout()
plt.show()


plt.figure(figsize=(14, 8))
for stock in stocks:
    plt.subplot(3, 2, stocks.index(stock) + 1)
    sns.scatterplot(x=f'Close_{stock}', y=f'Volume_{stock}', data=df, alpha=0.7)
    plt.title(f'{stock} Closing Price vs Trading Volume')
    plt.xlabel('Closing Price')
    plt.ylabel('Volume')
plt.tight_layout()
plt.show()


plt.figure(figsize=(14, 8))
for stock in stocks:
    sns.lineplot(x='Date', y=f'Volume_{stock}', data=df, label=stock)
plt.title('Comparison of Stock Volume Prices Over 15 Years')
plt.xlabel('Date')
plt.ylabel('Closing Price')
plt.legend()
plt.tight_layout()
plt.show()

如果您在后续分析中有其他问题或需要进一步的帮助,欢迎随时交流探讨!

相关推荐
2501_92473111几秒前
智慧矿山误报率↓83%!陌讯多模态融合算法在矿用设备监控的落地优化
人工智能·算法·目标检测·视觉检测
码界筑梦坊4 分钟前
173-基于Flask的微博舆情数据分析系统
后端·python·数据分析·flask·毕业设计
attitude.x25 分钟前
GEO优化供应商:AI搜索时代的“答案”构建与移山科技的引领,2025高性价比实战指南
人工智能·科技
井云AI1 小时前
井云智能体封装小程序:独立部署多开版 | 自定义LOGO/域名,打造专属AI智能体平台
人工智能·后端·小程序·前端框架·coze智能体·智能体网站·智能体小程序
张较瘦_1 小时前
[论文阅读] 人工智能 + 软件工程 | 技术债务管理新范式:五步法工作坊与行动研究实践
人工智能·软件工程
杨杨杨大侠1 小时前
Spring AI 系列(一):Spring AI 基础概念与架构入门
人工智能·spring·架构
人大博士的交易之路1 小时前
龙虎榜——20250822
大数据·数据挖掘·数据分析·缠中说禅·龙虎榜·道琼斯结构
nenchoumi31192 小时前
手持 Mid360 + RealSense 相机 + Jetson Orin 一体平台
人工智能·目标检测·计算机视觉·机器人·ros
fanzhix2 小时前
线性回归学习
学习·机器学习·线性回归
大力财经3 小时前
百度Q2财报:总营收327亿 AI新业务收入首次超100亿
人工智能·百度