数据可视化利器matplotlib基本用法

python中用作数据可视化的工具有多种,其中matplotlib最为基础。故在工具选择上,图形美观之外,操作方便即上乘。

import numpy as np
import pandas as pd
from pandas import Series, DataFrame
import matplotlib.pyplot as plt
import matplotlib.finance as mpf
%matplotlib inline

fig = plt.figure(figsize=(10,8))  #建立一个大小为10*8的画板
ax1 = fig.add_subplot(321)  #在画板上添加3*3个画布,位置是第1个
ax2 = fig.add_subplot(3,2,2)
ax3 = fig.add_subplot(3,2,3)
ax4 = fig.add_subplot(3,2,4)
ax5 = fig.add_subplot(3,2,5)
ax6 = fig.add_subplot(3,2,6)


data1 = np.random.randn(20)
x = np.arange(20)

ax1.plot(data1)  #作折线图
ax2.scatter(data1,data1,color='r')  #作散点图
ax3.hist(data1,bins=10,alpha=0.3)  #作直方图
ax4.bar(x,data1)  #作柱形图
ax5.pie(np.random.randint(1,15,5),explode=[0,0,0.2,0,0])  #作饼形图
ax6.plot(x,data1,color='green')  #组合图
ax6.bar(x,data1,color='k')


fig,axes = plt.subplots(3,3,figsize=(20,16))
data2 = DataFrame(np.random.randn(10,5),columns = ['A','B','C','D','E'],index = np.arange(0,100,10))

data2.plot(kind='line',ax=axes[0][0])  #作折线图
data2.plot(kind = 'scatter',x = data2.index[0] ,y = data2.index[0],ax=axes[0][1])  #作散点图
data2.plot(kind='hist',ax=axes[0][2],legend=False)  #作直方图
data2.plot(kind='bar',ax=axes[1][0])  #作柱形图
data2.plot(kind='area',ax=axes[1][1],stacked = False) #面积图

train_data = np.array(data2)  
mpf.candlestick_ohlc(axes[1][2],train_data.tolist(),width=1.5,colorup='r',colordown='g')  #K线图

axim = axes[2][0].imshow(data2.values,interpolation='nearest')  #热力图
plt.colorbar(axim)

plt.legend(loc = 'best')
plt.show()

可能遇到的问题:

1.axes[ ][ ]前面的代表行,后面代表列

2.散点图表示因变量随自变量而变化的大致趋势,x,y大小写有区分

3.面积图若不添加stacked = False会报错,提示每列必须得全正或全负

4.K线图至少得5列数据

更多操作:

plt.xlabel('横坐标名称')
plt.title('标题')
plt.xlim([0,20])  #添加x轴范围
ax.set_xyick([0,250,500,750,1000])  #设置x轴标签
ax.text(x,y,'text',family = '',fontsize = '')  #添加文本
plt.setp(ax.get_xticklables(),viseble = False)  #隐藏x轴标签,多图使用
plt.subplot_adjust(left = None,right = None,top = None,wspace = None,hspace = None)  #调整子图间距
plt.axhline(y = 0,linewidth = 1,color = 'green')   #添加分割线
plt.grid(True)   #添加网格
plt.savefig('filepath')  #保存图片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值