2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > python数据科学包(七)—— matplotlib实战之绘制球员能力图和股票K线图

python数据科学包(七)—— matplotlib实战之绘制球员能力图和股票K线图

时间:2021-02-25 22:11:10

相关推荐

python数据科学包(七)—— matplotlib实战之绘制球员能力图和股票K线图

1.球员能力图

# -*- coding: utf-8 -*-import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom matplotlib.font_manager import FontPropertiesfont = FontProperties(fname=r'C:\Windows\Fonts\SIMSUN.ttc', size=12)ability_label = [u'进攻', u'防守', u'盘带', u'速度', u'体力', u'射术']ability_size = 6# 随机生成球员数据player = {'M': np.random.randint(size=ability_size, low=10, high=99),'N': np.random.randint(size=ability_size, low=10, high=99),'H': np.random.randint(size=ability_size, low=10, high=99),'Q': np.random.randint(size=ability_size, low=10, high=99)}# 生成角度值,各个角度一样theta = np.linspace(0, 2 * np.pi, 6, endpoint=False)# 追加一个值使得首尾连线theta = np.append(theta, theta[0])# 追加一个值使得首尾连线player['M'] = np.append(player['M'], player['M'][0])player['N'] = np.append(player['N'], player['N'][0])player['H'] = np.append(player['H'], player['H'][0])player['Q'] = np.append(player['Q'], player['Q'][0])plt.style.use('ggplot')ax1 = plt.subplot(221, projection='polar')ax2 = plt.subplot(222, projection='polar')ax3 = plt.subplot(223, projection='polar')ax4 = plt.subplot(224, projection='polar')# 坐标系:ax,坐标角度:theta,球员数据:player,球员名字:p_name,显示颜色:colordef set_ax(ax, theta, player, p_name, color):ax.fill(theta, player, color, alpha=0.3)ax.set_xticks(theta)ax.set_xticklabels(ability_label, y=-0.05, fontproperties=font)ax.set_title(p_name, fontproperties=font, color=color, size=20)ax.set_yticks([])set_ax(ax1, theta, player['M'], '球员A', 'r')set_ax(ax2, theta, player['N'], '球员B', 'g')set_ax(ax3, theta, player['H'], '球员C', 'b')set_ax(ax4, theta, player['Q'], '球员D', 'y')plt.show()

2. 股票K线图

import osimport pandas as pdimport matplotlib.pyplot as pltimport mpl_finance as mpffrom pandas.plotting import register_matplotlib_convertersregister_matplotlib_converters()# 设置总体样式plt.style.use("ggplot")# 数据来源datadir = 'yahoo-data'fname = '002001.csv'data = pd.read_csv(os.path.join(datadir, fname), index_col='Date', parse_dates=True)# 单独取出volume数据绘图使用vol = data['Volume']# 设置两个图的位置left, width = 0.1, 0.8rect_vol = [left, 0.1, width, 0.3]rect_main = [left, 0.46, width, 0.5]# 创建画布fig = plt.figure()# 添加两个坐标轴ax_vol = fig.add_axes(rect_vol)ax_main = fig.add_axes(rect_main)# 填充volume图ax_vol.fill_between(vol.index, vol.values, color='y')# 设置x轴显示样式plt.setp(ax_vol.get_xticklabels(), rotation=30, horizontalalignment='right')# 替换timestamp to floatmain_data = []for d in data.reset_index().values:d[0] = d[0].timestamp()main_data.append((d[0], d[1], d[2], d[3], d[4]))print(main_data)# 绘制蜡烛图mpf.candlestick_ohlc(ax_main, main_data, width=30000, colorup='r', colordown='g')plt.xticks([])plt.show()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。