金融代码分析
获取股票解禁数据函数 ak.stock-restricted_shares(stock=stock_name) ak.stock_zh_a_hist(symbol=stock_name) 获取指定股标名称的股票数据 建立三个空列表,根据获取的数据进行plt.plot()绘图 通过for循环,对价格高的日期进行特殊描点
import akshare as ak
import matplotlib.pyplot as plt
import pandas as pd
plt.figure( figsize= ( 12 , 11 ))
plt.rcParams[ 'font.sans-serif' ] = [ 'SimHei' ]
plt.rcParams[ 'axes.unicode_minus' ] = False
stock_name = '600010'
stock_restricted_shares_df = ak.stock_restricted_shares( stock= stock_name)
print( stock_restricted_shares_df)
stock_zh_a_hist_df = ak.stock_zh_a_hist( symbol= stock_name, period = "daily" , start_date = "20190101" , end_date = '20220331' ,
adjust = "" )
date = [ ]
price = [ ]
color = [ ]
for i in range( stock_zh_a_hist_df.shape[ 0 ] ) :
print( '日期:' ,stock_zh_a_hist_df.values[ i] [ 0 ] ,'收盘价:' ,stock_zh_a_hist_df.values[ i] [ 2 ] )
for i in range( 0 , stock_zh_a_hist_df.shape[ 0 ] ) :
date.append( stock_zh_a_hist_df.values[ i] [ 0 ] )
price.append( stock_zh_a_hist_df.values[ i] [ 2 ] )
if stock_zh_a_hist_df.values[ i] [ 0 ] in stock_restricted_shares_df.values[ :, 2 ] :
color.append( 'r' )
else:
color.append( 'b' )
clo = [ ]
for i in range( 30,60 ) :
if price[ i] > 1.8 :
clo.append( 'r' )
fs = 200
else:
clo.append( 'b' )
plt.plot( date[ 30 :60] , price[ 30 :60] , 'b' )
plt.plot( date[ 30 :60] , price[ 30 :60] , 'b' )
plt.xticks( rotation= 30 )
plt.scatter( date[ 30 :60] , price[ 30 :60] , c = clo,marker= u'o' ,s= fs,label= f'股票代码:{stock_name}' )
plt.savefig( "./res.jpg" )
plt.grid( linestyle= '-.' )
plt.title( f'{date[0]}至{date[30][5:]}日 上证股票收盘价走势图' ,fontsize= 25 )
plt.legend( loc= 'upper left' ,fontsize= 18 )
plt.show( )