Python Plotly 绘制饼状图实战:数据清洗与可视化全流程

今天早睡
今天早睡
发布时间:2026-10-11 | 3人浏览过
原创

本文介绍如何使用 Python 的 Plotly 库绘制交互式饼状图。通过 Pandas 读取 CSV 数据,统计禁投池中 ST、指数成分股、退市及次新股等分类数量,并利用 go.Pie 生成可视化图表。文章涵盖数据预处理、标签映射及绘图参数配置,帮助开发者快速实现金融数据的直观展示。

环境准备与数据加载

实现 Plotly 饼状图需要引入 pandas 进行数据处理,numpy 辅助计算,以及 plotly.graph_objs 构建图形对象。首先,定义数据文件路径并读取 CSV 文件,将股票代码列设置为索引,以便后续进行条件筛选。

import pandas as pd
import numpy as np
import plotly.plotly as py
import plotly.graph_objs as go

path = '/home/v-gazh/PycharmProjects/us_data/limit_code.csv'
df = pd.read_csv(path)
df.set_index(['code'], inplace=True)

关键指标统计

在绘制图表前,需对数据进行多维度统计。以下代码展示了如何计算禁投池中的各类股票数量,包括 ST 股票、指数成分股(上证50、沪深300、中证500)、退市股票、非股票类型、次新股以及小市值股票。

# 统计禁投池总数与 ST 股票数量
total_count = len(df)
st_count = len(df[df['isST']==1])
print(f'禁投池总数:{total_count}')
print(f'禁投池中ST个数:{st_count}')

# 统计指数成分股数量
sz50_count = len(df[df['isSz50']==1])
hs300_count = len(df[df['isHs300']==1])
zz500_count = len(df[df['isZz500']==1])
print(f'禁投池中上证50个数:{sz50_count}')
print(f'禁投池中沪深300个数:{hs300_count}')
print(f'禁投池中中证500个数:{zz500_count}')

# 统计退市股票数量(非空值)
outdate_count = len(df['outDate'].dropna())
print(f'禁投池中退市股票个数:{outdate_count}')

# 统计非股票类型(type != 1)
not_stock = len(df[df['type']!=1])
print(f'禁投池中非股票个数:{not_stock} 【SZ006415 为基金:F006415 | SZ000000 代码错误】')

# 统计次新股(上市不满一年)
delta_df = pd.DataFrame((pd.to_datetime(df['date']) - pd.to_datetime(df['ipoDate'])))
new_stock = len(delta_df[delta_df[0] < pd.Timedelta('365 days')])
print(f'禁投池中次新股个数:{new_stock}')

# 统计市值小于30亿的股票
maketValue = len(df[df['maketValue'] < 3000000000])
print(f'市值小于30亿股票个数:{maketValue}')

Plotly 饼状图绘制

完成数据统计后,将统计结果映射到标签(labels)和数值(values)列表中。使用 go.Pie 创建饼图对象,并通过 textfont 参数设置字体大小。最后,调用 py.iplot 渲染图表。

# 定义标签与对应数值
labels = ['股票总数', 'ST股票', '深证50', '沪深300', '中证500', '退市股票', '非股票', '次新股', '小市值']
values = [total_count, st_count, sz50_count, hs300_count, zz500_count, outdate_count, not_stock, new_stock, maketValue]

# 创建饼图追踪对象
trace = go.Pie(labels=labels, values=values, textfont=dict(size=15))

# 渲染图表
py.iplot([trace], filename='basic_pie_chart')

上述代码中,labels 列表定义了饼图各扇区的名称,values 列表对应各扇区的数值大小。通过 textfont=dict(size=15) 可调整标签字体大小,提升图表可读性。

以上就是基于 Plotly 实现 Python 饼状图绘制的详细内容,更多关于 Python 数据可视化与 Plotly 使用的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表