通过df=ts.get_hist_data("600000",ktype="D",start='2021-01-01',end='2023-05-13')获取数据,使用上述数据绘制浦发银行股票收盘价和成交量的综合时间序列的南丁格尔玫瑰图
时间: 2023-06-19 10:10:46 浏览: 172
基于Clementine软件的时间序列分析以浦发银行股票为例.docx
首先需要对数据进行处理,提取出收盘价和成交量,并将其按照日期进行分组统计。
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 获取数据
df = ts.get_hist_data("600000",ktype="D",start='2021-01-01',end='2023-05-13')
# 提取收盘价和成交量
close = df['close']
volume = df['volume']
# 按日期分组统计
close_count = close.groupby(pd.cut(close, np.arange(0, 30, 2))).count()
volume_count = volume.groupby(pd.cut(volume, np.arange(0, 1000000000, 100000000))).count()
```
然后使用matplotlib库中的polar函数绘制南丁格尔玫瑰图。
```python
# 绘制南丁格尔玫瑰图
fig = plt.figure(figsize=(8, 8))
ax = fig.add_subplot(111, projection='polar')
# 设置刻度和标签
theta = np.linspace(0, 2*np.pi, 24, endpoint=False)
radii = np.linspace(0, 1, 5)
r_ticks = [i/4 for i in range(5)]
theta_ticks = np.linspace(0, 2*np.pi, 24, endpoint=False)
ax.set_rlim(0, 1.2*max(close_count))
ax.set_rticks(r_ticks)
ax.set_rlabel_position(0)
ax.set_xticks(theta_ticks)
ax.set_xticklabels(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']*2)
# 绘制收盘价玫瑰图
ax.plot(theta, close_count.values, color='r', linewidth=1, label='Close Price')
ax.fill(theta, close_count.values, color='r', alpha=0.3)
# 绘制成交量玫瑰图
ax.plot(theta, volume_count.values, color='b', linewidth=1, label='Volume')
ax.fill(theta, volume_count.values, color='b', alpha=0.3)
# 添加图例
plt.legend(loc='upper right')
# 显示图形
plt.show()
```
运行后可以得到绘制好的南丁格尔玫瑰图,其中红色线条代表收盘价玫瑰图,蓝色线条代表成交量玫瑰图。
阅读全文