前面写了30篇博客来讲数据分析的基础部分,这篇博客终于开始写数据可视化了
这篇博客写一下Matplotlib简介及图表窗口,Matplotlib是一个Python版的matlab绘图接口,以2D为主,支持Python,numpy,pandas基本数据结构,运营高效且有较丰富的图表库
使用Matplotlib的时候首先要引入它的包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt#引入matplotlib包
(1)图表窗口1—plt.show()
plt.show( ) 直接生成图表
plt.plot(np.random.rand(10))#创建数据
plt.show()#显示图表
输出结果:
(2)图表窗口2—魔法函数,嵌入图表
可以使用魔法函数直接嵌入图表,不需要使用plt.show( ) 来显示
% matplotlib inline #引入模块
x = np.random.randn(1000)
y = np.random.randn(1000)
plt.scatter(x,y)#绘制散点图
输出结果:
(3)图表窗口3—模范函数,弹出可交互的matplotlib窗口
matplotlib模块可以绘制可交互的图表窗口
%matplotlib notebook #引入模块
s = pd.Series(np.random.randn(100))
s.plot(style = 'k--o',figsize=(10,5))
输出结果:
这个可交互式窗口用起来还是很舒服的
(4)图表窗口4----魔法函数,弹出matplotlib控制台
如果在前面有加载过 notebook显示方式,则需要重启再运行魔法函数,一旦加载过一个显示方式则会一直默认为显示该方式
%matplotlib qt5 #引入模块
df = pd.DataFrame(np.random.rand(50,2),columns=['A','B'])
df.hist(figsize=(12,5),color='g',alpha=0.8)
输出结果:
(5)图表基本元素—图名,图例,轴标签,轴边界,轴刻度,轴刻度标签等
创建数据,并创建图表对象,赋值于fig
df = pd.DataFrame(np.random.rand(10,2),columns=['A','B'])
fig = df.plot(figsize=(6,4))
设置图表名称,x轴标签,y轴标签
plt.title('Interesting Graph - Check it out') # 图名
plt.xlabel('Plot Number') # x轴标签
plt.ylabel('Important var') # y轴标签
设置图例位置
plt.legend(loc = 'upper right')
loc的参数有以下几种:
‘best’:自适应方式
‘upper right’:右上角
‘upper left’:左上角
‘lower left’:左下角
‘lower right’:右下角
‘right’:右边
‘center left’:
‘center right’:
‘lower center’:
‘upper center’:
‘center’:
设置x轴和y轴边界以及刻度
plt.xlim([0,12]) # x轴边界
plt.ylim([0,1.5]) # y轴边界
plt.xticks(range(10)) # 设置x刻度
plt.yticks([0,0.2,0.4,0.6,0.8,1.0,1.2]) # 设置y刻度
设置x轴和y轴刻度标签
fig.set_xticklabels("%.1f" %i for i in range(10)) # x轴刻度标签
fig.set_yticklabels("%.2f" %i for i in [0,0.2,0.4,0.6,0.8,1.0,1.2]) # y轴刻度标签
绘制最终图表
print(fig,type(fig))
(6)其他元素可视性
通过ndarray创建图表
x = np.linspace(-np.pi,np.pi,256,endpoint = True)
c, s = np.cos(x), np.sin(x)
plt.plot(x, c)
plt.plot(x, s)
显示网格
plt.grid(True, linestyle = "--",color = "gray", linewidth = "0.5",axis = 'x')
这里要注意以下参数:
linestyle:线型;
color:颜色;
linewidth:宽度;
axis:x,y,both,显示x/y两者的网格
刻度显示
plt.tick_params(bottom='on',top='off',left='on',right='off')
设置刻度的方向
import matplotlib
matplotlib.rcParams['xtick.direction'] = 'out'
matplotlib.rcParams['ytick.direction'] = 'inout'
关闭坐标轴
frame = plt.gca()#也可以写作plt.axis('off')
输出结果:
太晚啦,就到这里啦
关注欢喜,走向成功~