python:数据可视化汇总(一)-matplotlib

仅做整理以及基本用法,没有任何奇淫巧技,没有美观度要求。

import matplotlib.pyplot as plt
import pandas as pd
df=pd.read_csv('/home/timo/PycharmProjects/BTC_quant/daily_price_btc.csv') #其实就是上一篇BTC-CNY的数据

  

1. 折线图

plt.figure(figsize=(16,8)) #定义图的大小
plt.plot(df['volume'],label='line one') #定义数据,可以是一个数据,也可以是两个数据,可以是dataframe或者series格式,也可以是list或者numpy.array格式,label是线对应的名称,当同一图上有多条线时可以用来区分
plt.xlabel("xxx") #所有种类的图都可以添加x、y轴标签和名称,没有也没关系

plt.ylabel("xxx")
plt.title("xxx")
plt.legend()#显示线的label,当有多条折线时,可选择
plt.show() #显示图

plt.plot()内还可以定义一些函数细节,包括线的颜色、线型、标记字符,可以参考此文:plt.plot()函数细节

当你在一个图上画多条折现时,函数会自动分配颜色,可以在plt.plot()里用label=‘xxx’定义线的名称

 

在同一张图表里绘制两张子图:

plt.subplot(211) #括号里的(mnp):m表示是图排成m行,n表示图排成n列,p表示位置
plt.plot(df['volume'])
plt.subplot(212)
plt.plot(df['close'])
plt.show()

  

 

2.点状图

点状图函数内必须有x,y两个参数,函数内也可以定义颜色、标记字符

plt.figure(figsize=(16,8))
plt.scatter(buy_time,buy_dot,c='r')
plt.scatter(sell_time,sell_dot,c='k')
plt.show()

 

3.直方图

plt.hist(x, bins= 10, range= None, normed= False, weights= None, cumulative= False, bottom= None, histtype= 'bar', align= 'mid', orientation= 'vertical', rwidth= None, log= False, color= None, label= None, stacked= False)

  • bins:指定直方图条形的个数,默认为10 ;

  • range:指定直方图数据的上下界,默认包含绘图数据的最大值和最小值;

  • normed:是否将直方图的频数转换成频率;默认为0,代表不归一化,显示频数,normed=1,表示归一化,显示频率

  • weights:该参数可为每一个数据点设置权重;

  • cumulative:是否需要计算累计频数或频率;

  • bottom:可以为直方图的每个条形添加基准线,默认为0;

  • histtype:指定直方图的类型,默认为bar,除此还有’barstacked’, ‘step’, ‘stepfilled’;

  • align:设置条形边界值的对其方式,默认为mid,除此还有’left’和’right’;

  • orientation:设置直方图的摆放方向,默认为垂直方向;

  • rwidth:设置直方图条形宽度的百分比;

  • log:是否需要对绘图数据进行log变换;

  • color:设置直方图的填充色;facecolor:长条形的颜色 edgecolor:长条形边框的颜色 

  • label:设置直方图的标签,可通过legend展示其图例;

  • stacked:当有多个数据时,是否需要将直方图呈堆叠摆放,默认水平摆放

  • alpha:透明度
plt.figure(figsize=(16,8))
plt.hist(df['volume']) 
plt.show()

  

4.k线图

k线图的历史价格data数据列的顺序,从左至右是,开盘,收盘,最高,最低,成交量

import matplotlib as mpl
import mpl_finance as mpf

 


fig,ax=plt.subplots(figsize=(15,6)) fig.subplots_adjust(bottom=0.5) mpf.candlestick_ochl(ax,data,width=0.6,colorup='r',colordown='g',alpha=1.0) # ax 绘图Axes的实例,data价格历史数据 width 图像中红绿矩形的宽度,代表天数,colorup 收盘价格大于开盘价格时的颜色,colordown 低于开盘价格时矩形的颜色,alpha 矩形的颜色的透明度 # plt.grid(True) 是否显示格子 # plt.title('k线图') # plt.xlabel('date') # plt.ylabel('price') ax.xaxis_date() # x轴的刻度为日期 ax.autoscale_view() plt.setp(plt.gca().get_xticklabels(),rotation=30) plt.show()

 

 

5.未完待续

 

posted @ 2018-08-19 16:45  TimoTong  阅读(1203)  评论(0编辑  收藏  举报