【数据可视化】Matplotlib:MATLIB 风格与面向对象

📖 一、Matplotlib库相关介绍

【介绍】:Matplotlib 是建立在Numpy数组基础上的多平台数据可视化程序库。

安装
pip install matplotlib
两种使用方式
  • 1、交互式图形: %matplotlib notebook
  • 2、静态图形: %matplotlib inline
导入相关库
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
【第一步】:绘制正弦、余弦曲线
x = np.linspace(-5,5,100)
fig = plt.figure()
plt.plot(x,np.sin(x),'-')
plt.plot(x,np.cos(x),'--')
plt.show()
output_正弦、余弦曲线
【第二步】:利用savefig将图形保存为文件
fig.savefig('my.png')
【第三步】:利用from IPython.display import Image显示图形
from IPython.display import Image
Image("my.png")
output_显示图形
【第四步】:获取支持的图像格式
fig.canvas.get_supported_filetypes()
{'ps': 'Postscript',
 'eps': 'Encapsulated Postscript',
 'pdf': 'Portable Document Format',
 'pgf': 'PGF code for LaTeX',
 'png': 'Portable Network Graphics',
 'raw': 'Raw RGBA bitmap',
 'rgba': 'Raw RGBA bitmap',
 'svg': 'Scalable Vector Graphics',
 'svgz': 'Scalable Vector Graphics'}

📖 二、画图的两种风格

【第一种】:MATLIB 风格接口
# 创建图形
plt.figure()

#(行、列、子图的编号)
plt.subplot(2,1,1)
plt.plot(x,np.sin(x))

plt.subplot(2,1,2)
plt.plot(x,np.cos(x))

【解释】:这种风格的重要特征是:有状态的。会持续跟踪当前的图形和坐标进行绘制。

  • plt.gcf() :获取当前图形
  • plt.gca() : 获取当前坐标轴
output_MATLIB 风格
【第二种】:面向对象接口
# ax 是包含了两个Axes对象的数组
fig, ax = plt.subplots(2)

# 在每个对象上调用plot()
ax[0].plot(x,np.sin(x))
ax[1].plot(x,np.cos(x))

【基本思路】:将画图实例化对象为ax,( ax 是包含了两个Axes对象的数组),然后对每个对象直接调用plot()等相关函数进行绘图。

output_面向对象

📖 三、绘制简易线型图

  • figure:可以被看做是一个能够容纳各种坐标轴、图形、文字、和标签的容器
  • axes: 是一个带标签和刻度的矩形。
# figure:可以被看做是一个能够容纳各种坐标轴、图形、文字、和标签的容器
# axes: 是一个带标签和刻度的矩形。
fig = plt.figure()
ax = plt.axes()
【第一步】:没错,先绘制一个空白的带标签和刻度的容器作为绘图的基础(就像画布那样)。
output_画布
【第二步】:通过不断的调用plot可以在一个画布上绘制多个图形。
plt.plot(x,np.sin(x))
plt.plot(x,np.cos(x))
output_绘制图形
【第三步】:调整图形的线条颜色与风格
## 颜色 color参数
plt.plot(x,np.sin(x - 0), color='blue')  # 标准颜色名称
plt.plot(x,np.sin(x - 1), color='g')     # 缩写颜色的代码(rgbcmyk)
plt.plot(x,np.sin(x - 2), color='0.75')  # 范围在0-1直间的灰度值
plt.plot(x,np.sin(x - 3), color='#ff99dd') #十六进制
plt.plot(x,np.sin(x - 4), color=(1.0,0.2,0.3)) #RGB元组,范围0-1

【补充】:Matplotlib中关于颜色的表达形式,主要有以下几种。

  • color='blue':标准颜色名称;
  • color='g': 缩写颜色的代码(rgbcmyk);
  • color='0.75':范围在0-1直间的灰度值;
  • color='#ff99dd':十六进制;
  • color=(1.0,0.2,0.3):RGB元组,范围(0,1);
output_颜色的表达形
【第四步】: 使用 linestyle 参数调整线条风格
plt.plot(x,x+0,linestyle='solid')
plt.plot(x,x+1,linestyle='dashed')
plt.plot(x,x+2,linestyle='dashdot')
plt.plot(x,x+3,linestyle='dotted')
output_线条风格
【第五步】:线条风格,简写形式
plt.plot(x,x+0,linestyle='-')   # 实线
plt.plot(x,x+1,linestyle='--')  # 虚线
plt.plot(x,x+2,linestyle='-.') # 点划线
plt.plot(x,x+3,linestyle=':') # 实点线
output_线条风格
【第六步】:(参数组合)将color 和linestyle 组合起来
plt.plot(x,x+0,'-g')  # 绿色实线
plt.plot(x,x+1,'--c') # 青色虚线
plt.plot(x,x+3,'-.k') # 黑色点划线
plt.plot(x,x+4,':r') # 红色点实线
output_参数组合
【第七步】:调整坐标轴的上下限
  • 方式1:两个基础方法:plt.xlim() 和 plt.ylim()
# 方式1:两个基础方法:plt.xlim()  和 plt.ylim()
plt.plot(x,np.sin(x))
plt.xlim(-1,11)
plt.ylim(-1.5,1.5)
output_参数组合
  • 方式2:plt.axis([xmin,xmax,ymin,ymax])
# 方式2:plt.axis([xmin,xmax,ymin,ymax])
plt.plot(x,np.sin(x))
plt.axis([-1,11,-1.5,1.5])
output
【第八步】:坐标轴逆序显示,将 xlim() 或者 ylim()的参数设置为负值。
plt.plot(x,np.sin(x))
plt.xlim(10,0)
plt.ylim(1.2,-1.2)
output_坐标轴逆序
【第九步】:使用 plt.axis('tight') 按照图形内容,自动缩紧坐标轴,不留空白。
output_缩紧坐标轴
plt.plot(x,np.sin(x))
plt.axis('tight')
【第十步】:让x和y轴长度单位相同
plt.plot(x,np.sin(x))
plt.axis('equal')
output_单位等长
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容