绘制柱状图
- 导入绘图模块
import pandas as pd
import matplotlib.pyplot as plt # 绘图模块
- 数据源
日期,收盘价,最高价,最低价,开盘价,前收盘,涨跌额,涨跌幅,换手率,成交量,成交金额,总市值,流通市值,成交笔数
2020/4/3,6.87,7.01,6.85,6.91,6.91,-0.04,-0.5789,0.7178,2375700,16455163,2273637492,2273637492,1638
2020/4/2,6.91,6.94,6.77,6.82,6.92,-0.01,-0.1445,0.9391,3108118,21342821.22,2286875556,2286875556,2031
2020/4/1,6.92,7.25,6.87,7.22,7.34,-0.42,-5.7221,2.045,6767800,47458044,2290185072,2290185072,4520
2020/3/31,7.34,7.5,7.27,7.45,7.45,-0.11,-1.4765,1.0597,3507000,25789407,2429184744,2429184744,2690
2020/3/30,7.45,7.62,7.3,7.35,7.38,0.07,0.9485,1.4115,4671400,34906209,2465589420,2465589420,3205
- 读入数据
读取数据源并设置文本编码
frame = pd.read_csv("股票数据.csv", encoding='GBK') # 将数据加载成DataFrame格式
frame = frame.set_index("日期") # 将日期设置为索引
frame.index = pd.to_datetime(frame.index) # 转换为Datetime时间类型,方便后续处理
frame.head(5)
- 绘制饼状图
results = frame[['成交笔数']].groupby(frame.index.year).sum()
plt.pie(results['成交笔数'])
plt.show()

- 显示文本标签
autopct每块占比 %3为整数1位小数浮点数%
textprops 使用字典设置颜色、大小和黑体
plt.pie(results['成交笔数'], labels=results.index, autopct='%3.1f%%', textprops={"color":'b', 'size':15, 'weight':'bold'})
plt.show()

- 设置离心率
explode设置到中心距离
results =frame.groupby(frame.index.year).agg(sum=("成交笔数", 'sum'), avg=("换手率", 'mean'))
plt.pie(results['sum'], explode=results['avg']/results['avg'].max(), labels=results.index, autopct='%3.1f%%')
plt.show()

- 设置color图例
import matplotlib.cm as cm
plt.pie(results['sum'], colors=cm.ScalarMappable().to_rgba(results['avg']), labels=results.index, autopct='%3.1f%%')
sm = plt.cm.ScalarMappable(norm=plt.Normalize(vmin=results['avg'].min(),vmax=results['avg'].max()))
plt.colorbar(sm)

- 设置同心圆pie
wedgeprops 设置宽度保留:圆心为0 边为1
pctdistance 设置标签的位置
plt.pie(results['sum'],pctdistance=0.9, wedgeprops={"width":0.2, 'edgecolor':'w'}, labels=results.index, autopct='%3.1f%%')
plt.show()

- 两个维度的同心圆
radius 设置半径
plt.pie(results['sum'],pctdistance=0.9, wedgeprops={"width":0.2, 'edgecolor':'w'}, labels=results.index, autopct='%3.1f%%')
plt.pie(results['avg'], pctdistance=0.5, radius=0.8, autopct='%3.1f%%') # radius=0.8设定饼图的半径
plt.show()

wedgeprops 设置保留边缘 radius 设置半径
plt.pie(results['sum'],pctdistance=0.9, wedgeprops={"width":0.2, 'edgecolor':'w'}, labels=results.index, autopct='%3.1f%%')
plt.pie(results['avg'], pctdistance=0.85,wedgeprops={"width":0.2, 'edgecolor':'w'}, radius=0.8, autopct='%3.1f%%')
plt.show()


4万+

被折叠的 条评论
为什么被折叠?



