python绘制图标元素展示股票价格走势

在股票价格走势的可视化中,除了折线图,还可以添加多种其他类型的图表元素来更全面地展示数据和分析信息,以下为你详细介绍并给出相应的 Python 代码示例:

1. 柱状图(Bar Chart)

柱状图可以用于展示股票的成交量等数据,与折线图的价格走势进行对比。

import pandas as pd
import matplotlib.pyplot as plt

# 读取 CSV 文件
file_path = 'stock_data.csv'  # 假设包含日期、收盘价、成交量三列
try:
    df = pd.read_csv(file_path)
except FileNotFoundError:
    print(f"文件 {file_path} 未找到。")
else:
    # 将日期列转换为日期类型
    df['日期'] = pd.to_datetime(df['日期'])

    # 设置图片清晰度
    plt.rcParams['figure.dpi'] = 300

    # 创建一个包含两个子图的画布
    fig, ax1 = plt.subplots(figsize=(10, 6))

    # 绘制折线图表示收盘价
    ax1.plot(df['日期'], df['收盘价'], label='收盘价', color='blue')
    ax1.set_xlabel('日期')
    ax1.set_ylabel('收盘价', color='blue')
    ax1.tick_params(axis='y', labelcolor='blue')

    # 创建第二个 y 轴用于绘制柱状图表示成交量
    ax2 = ax1.twinx()
    ax2.bar(df['日期'], df['成交量'], label='成交量', color='green', alpha=0.3)
    ax2.set_ylabel('成交量', color='green')
    ax2.tick_params(axis='y', labelcolor='green')

    # 显示图例
    lines, labels = ax1.get_legend_handles_labels()
    lines2, labels2 = ax2.get_legend_handles_labels()
    ax2.legend(lines + lines2, labels + labels2, loc='upper left')

    # 自动调整 x 轴日期显示
    fig.autofmt_xdate()

    # 显示图表
    plt.show()

2. 散点图(Scatter Plot)

散点图可以用于展示股票价格与其他指标(如市盈率)之间的关系。

import pandas as pd
import matplotlib.pyplot as plt

# 读取 CSV 文件
file_path = 'stock_data.csv'  # 假设包含收盘价、市盈率两列
try:
    df = pd.read_csv(file_path)
except FileNotFoundError:
    print(f"文件 {file_path} 未找到。")
else:
    # 设置图片清晰度
    plt.rcParams['figure.dpi'] = 300

    # 绘制散点图
    plt.figure(figsize=(10, 6))
    plt.scatter(df['收盘价'], df['市盈率'], color='red', alpha=0.5)

    # 设置图表标题和坐标轴标签
    plt.title('股票收盘价与市盈率关系')
    plt.xlabel('收盘价')
    plt.ylabel('市盈率')

    # 显示图表
    plt.show()

3. 移动平均线(Moving Average)

移动平均线可以帮助平滑价格数据,更清晰地显示价格趋势。

import pandas as pd
import matplotlib.pyplot as plt

# 读取 CSV 文件
file_path = 'stock_prices.csv'
try:
    df = pd.read_csv(file_path)
except FileNotFoundError:
    print(f"文件 {file_path} 未找到。")
else:
    # 将日期列转换为日期类型
    df['日期'] = pd.to_datetime(df['日期'])

    # 计算 5 日和 20 日移动平均线
    df['5 日移动平均线'] = df['收盘价'].rolling(window=5).mean()
    df['20 日移动平均线'] = df['收盘价'].rolling(window=20).mean()

    # 设置图片清晰度
    plt.rcParams['figure.dpi'] = 300

    # 绘制折线图
    plt.figure(figsize=(10, 6))
    plt.plot(df['日期'], df['收盘价'], label='收盘价')
    plt.plot(df['日期'], df['5 日移动平均线'], label='5 日移动平均线', linestyle='--')
    plt.plot(df['日期'], df['20 日移动平均线'], label='20 日移动平均线', linestyle='-.')

    # 设置图表标题和坐标轴标签
    plt.title('股票价格走势及移动平均线')
    plt.xlabel('日期')
    plt.ylabel('收盘价')

    # 显示图例
    plt.legend()

    # 自动调整 x 轴日期显示
    plt.gcf().autofmt_xdate()

    # 显示图表
    plt.show()

4. 面积图(Area Chart)

面积图可以用于强调价格走势下方的区域,给人一种累积的视觉效果。

import pandas as pd
import matplotlib.pyplot as plt

# 读取 CSV 文件
file_path = 'stock_prices.csv'
try:
    df = pd.read_csv(file_path)
except FileNotFoundError:
    print(f"文件 {file_path} 未找到。")
else:
    # 将日期列转换为日期类型
    df['日期'] = pd.to_datetime(df['日期'])

    # 设置图片清晰度
    plt.rcParams['figure.dpi'] = 300

    # 绘制面积图
    plt.figure(figsize=(10, 6))
    plt.fill_between(df['日期'], df['收盘价'], color='skyblue', alpha=0.5)
    plt.plot(df['日期'], df['收盘价'], label='收盘价', color='blue')

    # 设置图表标题和坐标轴标签
    plt.title('股票价格走势面积图')
    plt.xlabel('日期')
    plt.ylabel('收盘价')

    # 显示图例
    plt.legend()

    # 自动调整 x 轴日期显示
    plt.gcf().autofmt_xdate()

    # 显示图表
    plt.show()

这些不同类型的图表元素可以根据具体的分析需求进行组合使用,从而更深入地理解股票数据。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值