hello guys, 求职阶段插播更新,上次给大家介绍了用python做量化常用的两个包,numpy和pandas,这两个包主要的功能是在于数据处理,今天,还是沿着那个视频课程(参照上文),我会为大家整理一下如何进行数据可视化。犹豫上次推荐的视频课程是16年录制的,之后经过几次各种包的版本迭代,许多命令都有了变化,我也是经过了多方检索,算是做出了同等的效果,如果有大神知道更加专业实用的方法,欢迎指正的~进入正题:
关于数据可视化,简单地解释就是将数据变成可以简洁、全面传达的信息的图表,比如说柱状图、饼状图,从而可以更加方便地进行定性分析。再python里,本次介绍的工具是matplotlib,是个大众产品啦,功能很强大。安装方式就是
pip install matplotlib
通过调用它的 pyplot 子包就可以进行可视化。
#matplotlib
import matplotlib.pyplot as plt
plt.plot([1,2,3,4],[2,4,6,8]) #折线图
plt.show()
plt.plot([1,2,3,4],[2,4,6,8],"o-") #点
#线型linestyle(-,-.,--,)
#点型(v,^,s,*,H,+,x,D,o,)
#颜色(b,g,r,y,k,w,...)
plt.plot([1,2,3,4],[2,4,6,8],"o-")
plt.plot([1,2,3,4],[3,5,9,10],"v:k")
plt.title("Martplotlib Test Plot") #添加表标题
plt.xlabel("Xlabel") #添加轴标签
plt.ylabel("Ylabel")
plt.xlim(0,5)
plt.ylim(0,10) #设定坐标范围
plt.xticks([0,2,4]) #设定横坐标的显示值
plt.show()效果图
更多的参数设置大家可以通过手册学习一下
plt.plot?
一些例子
import matplotlib.pyplot as plt
#画y=x,y=X**2,y=3x**3+5x**2+2x=1
fig=plt.figure() #设定画布
ax1=fig.add_subplot(1,3,1) #创建子图,几行几列,第几个
ax2=fig.add_subplot(1,3,2)
ax3=fig.add_subplot(1,3,3)
x=np.linspace(-100,100,1000000)
y1=x.copy()
y2=x**2
y3=3*x**3+5*x**2+2*x+1
ax1.plot(x,y1,'r',label='y=x')
ax2.plot(x,y2,'k',label='y=x**2')
ax3.plot(x,y3,'b',label='y=3*x**3+5*x**2+2*x+1')
plt.ylim(-100,100)
fig.legend() #显示标签
fig.show()
#其他类型图
plt.plot(x,y,fmt,...) #坐标图
plt.boxplot(data,notch,position) #箱型图
plt.bar(left,height,width,bottom) #条形图
plt.barh(width,bottom,left,height) #横向条形图
plt.polar(theta,r) #极坐标图
plt.pie(data,explode) #饼图
#条形图
plt.bar([0,1,2,3],[5,6,7,8])
plt.show()
plt.bar([0,1,2,4],[5,6,7,8])
plt.show()
data=[32,41,20,100]
labels=['Jan','Feb','Mar','Apr']
plt.bar(np.arange(len(data)),data,color='red',align='edge')
plt.xticks(np.arange(len(data)),labels)
plt.show()
plt.pie([10,20,30,40],labels=['a','b','c','d'],autopct='%.2f%%',explode=[0,0,0.5,0])
plt.axis('equal')
plt.show()
大家可以尝试一下这些。
除了画这种数据图,matplotlib还支持画K线,由于最近的一次更新,原来的matplotlib.finance已经变成了一个独立mplfinance包,需要单独安装。使用方法也不太相同。这里我就直接贴我找到的画K线的方法。
#matplotlib 绘制K线图
import mplfinance as fin
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_csv(r'D:\sz.300413.csv',header=None,names=['date','code','open','high','low','close','volume'],index_col='date',parse_dates=True)
fin.plot(df,type='candle',style='classic',title='whatever',ylabel='Price($)')
plt.show()
更多的K线风格大家可以看下说明
fin.available_styles() #查询K线风格
这些就是今天的内容了,下次我会跟大家分享一些从接口获取数据的方法,希望大家来个三连,一夜暴富~