以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
您提供的代码已经涵盖了大部分您需要的功能,包括使用tushare库获取股票数据、进行描述性统计分析、绘制单只股票的收盘价和交易量图表,以及准备将四只股票的收盘价数据合并在一个图表中展示。以下是对您代码的一些补充和改进:
-
获取股票数据并保存为Excel文件:您已经实现了这一部分。
-
对300322.SZ股票的收盘价进行描述性统计分析:您已经使用
describe()方法进行了描述性统计。 -
绘制300322.SZ的收盘价和交易量的图表:您使用了
matplotlib库来绘制线图和柱状图。注意,您的代码中尝试在一个子图上绘制线图和柱状图,这通常不是一个好的实践,因为它们会共享y轴,可能导致混淆。您应该为收盘价和交易量分别创建两个子图。 -
将四只股票的收盘价数据合并,并在一个图表中用四个子图分别展示每只股票的收盘价变化趋势:您已经使用了
seaborn库来准备绘制这些股票的收盘价。但是,您需要确保所有的股票数据都被正确地加载和合并。
以下是一些改进后的代码示例:
# 3. 绘制300322.SZ的收盘价和交易量的图表
plt.figure(figsize=(10, 8))
plt.subplot(2, 1, 1) # 创建子图,2行1列的第1个
df_300322['close'].plot(title='300322.SZ 收盘价')
plt.subplot(2, 1, 2) # 2行1列的第2个
df_300322['vol'].plot(kind='bar', title='300322.SZ 交易量')
plt.tight_layout()
plt.show()
# 4. 四只股票的收盘价可视化:
# 确保所有股票数据都已加载
stocks_data = pd.DataFrame()
for code in codes:
temp_df = pd.read_excel(f"{code.replace('.', '-')}-{code.lower()}.xls")
temp_df['stock_code'] = code # 添加股票代码作为列,以便区分
stocks_data = pd.concat([stocks_data, temp_df[['trade_date', 'close', 'stock_code']]])
# 重新设置索引并排序
stocks_data.set_index('trade_date', inplace=True)
stocks_data.sort_index(inplace=True)
# 使用seaborn绘制四只股票的收盘价
plt.figure(figsize=(14, 10))
sns.lineplot(data=stocks_data, x='trade_date', y='close', hue='stock_code', style='stock_code', markers=True, dashes=False)
plt.xlabel('Date')
plt.ylabel('Close Price')
plt.title('Four Stocks Close Prices')
plt.legend(title='Stock Code', loc='upper left')
plt.grid(True)
plt.show()
参考资料:
- Tushare官方文档:https://tushare.pro/document/1?doc_id=139
- Matplotlib官方教程:https://matplotlib.org/stable/contents.html
- Seaborn官方文档:https://seaborn.pydata.org/
请注意,您需要确保您的tushare token是有效的,并且您已经安装了所有必要的库。如果您需要进一步的帮助或有任何问题,请随时提问。
