Matplotlib基本概念

在这里插入图片描述


一、import包

atplotlib包含有很多的模块,在具体使用的时候根据需要导入依赖的模块。通过将matplotlib包导入重命名为“mpl”,pyplot模块命名为“plt”,其中ticker为坐标轴刻度相关的模块。最基本的导入pyplot包即可。其他的包的使用在后续使用的时候逐一进行说明。

import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator, FormatStrFormatter

二、全局配置

设定坐标洗名称title,图例legend,坐标轴名称,刻度标签的字体大小,画布大小
large = 22; med = 16; small = 12
params = {'axes.titlesize': large,
          'legend.fontsize': med,
          'figure.figsize': (16, 10),
          'axes.labelsize': med,
          'axes.titlesize': med,
          'xtick.labelsize': med,
          'ytick.labelsize': med,
          'figure.titlesize': large}
#统一通过plt.rcParams设置
plt.rcParams.update(params)
#设置图的样式
plt.style.use('seaborn-whitegrid')
#设置中文字体
mpl.rcParams['font.family'] = ['Heiti TC']
# matplotlib具体作用是当调用matplotlib.pyplot的绘图函数plot()进行绘图的时候,或者生成一个figure画布的时候,可以直接在你的python console里面生成图像
%matplotlib inline

三 创建画布 figure

  • 显示创建画布
    通过plt.figure()显示的创建画布,然后往画布中添加对应的坐标系
# 显示创建一个figure对象
figure = plt.figure()
#为创建的figer添加不同的坐标系,前两个参数2,1表明坐标系为2行1列的排版,最后一个参数表明为那个坐标系
axes1 = figure.add_subplot(2,1,1)
axes2 = figure.add_subplot(2,1,2)

  • 隐式创建画布:
    在执行plot()的时候首先会创建画布figure,在画布自动添加一个坐标系axes,然后根据plot()中的数据绘制对应的图像;
x = [1,2,3,4]
y = [2,4,6,8]
plt.plot(x,y)
plt.show()

在这里插入图片描述
在隐式创建的时候不需要关心画布和坐标系。隐式创建画布的时候,一个figure对象上,只能有一个axes坐标系,因此只能绘制一个图形。

1、plot函数使用:

函数说明

通常plot()函数有如下两种参数的调用形式:
plot([x], y, [fmt], *, data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], …, **kwargs)
参数:

  • x: x轴数据
  • y: y轴数据
  • fmt:fmt=‘[marker][line][color]’ 表明图表的基本属性: 颜色(color)、点型(marker)、线型(linestyle)
  • data:可索引的数据,类似dataframe对象,可选参数
  • kwargs:指定透明度,线条的宽度,标签等等一系列的参数

具体详可以在官网中查询:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.plot.html?highlight=plot#matplotlib.pyplot.plot
除了plot函数外,针对不同的图形有专门的函数进行绘制。具体在后面会逐个进行介绍。

2、坐标轴范围

同时设置x,y两轴的范围

  • 函数
    plt.axis([xmin, xmax, ymin, ymax])
  • 示例

# 导入模块
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(-8, 8, 80)
y = x*3

plt.plot(x, y)
# 设置轴的范围
plt.axis([-5, 5, -20, 20])

plt.show()

在这里插入图片描述

分别设置两轴的范围

  • xlim(*args, **kwargs)
    设置和获取对应X坐标轴的范围
left, right = xlim()  # return the current xlim
xlim((left, right))   # set the xlim to left, right
xlim(left, right)     # set the xlim to left, right

等价于坐标系设定set_xlim()
axes.set_xlim(left, right)

  • ylim(*args, **kwargs)
    设置和获取对应Y坐标轴的范围
bottom, top = ylim()  # return the current ylim
ylim((bottom, top))   # set the ylim to bottom, top
ylim(bottom, top)     # set the ylim to bottom, top

等价于坐标系设定set_ylim()
axes.set_ylim(bottom, top)

  • 示例:
# 导入模块
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(-8, 8, 80)
y = x*3

plt.plot(x, y)
# 设置轴的范围
plt.xlim(-5,5)
plt.ylim(-16,16)

plt.show()

在这里插入图片描述

3、 刻度设置:

普通刻度

  • 函数:
    x轴的刻度:plt.xticks(item)
    y轴的刻度:plt.yticks(item)
  • 示例:
# 导入模块
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(-8, 8, 80)
y = x*3

plt.plot(x, y)
# 设置轴的范围
plt.xticks(np.arange(-5,5,1))
plt.yticks([-15,-5,3,9,15])

plt.show()

在这里插入图片描述

4、 添加文本的刻度

plt.xticks([‘数据’], [“标签”]) 设置刻度的基础上,在添加一个列表,来显示刻度

主次刻度设置

需要导入:from matplotlib.ticker import MultipleLocator, FormatStrFormatter

  • 主刻度:(x,y轴相同)
    倍数:ax.xaxis.set_major_locator(MultipleLocator(倍数))
    文本格式:ax.xaxis.set_major_formatter(FormatStrFormatter(‘%占位数.小数点数f’))
  • 副刻度:(x,y轴相同,将"major"改为"minor"即可)
    倍数:ax.xaxis.set_minor_locator(MultipleLocator(倍数))
    文本格式:ax.xaxis.set_minor_formatter(FormatStrFormatter(‘%占位数.小数点数f’))
# 导入模块
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
'''
生成数据
'''
x = np.linspace(-40, 40)
y = x*3
plt.plot(x, y)

ax = plt.gca()

'''
设置轴的主刻度
'''
ax.xaxis.set_major_locator(MultipleLocator(20))  # 设置20倍数
ax.xaxis.set_major_formatter(FormatStrFormatter('%2.1f'))  # 设置文本格式
ax.yaxis.set_major_locator(MultipleLocator(50))  # 设置50倍数
ax.yaxis.set_major_formatter(FormatStrFormatter('%2.2f'))  # 设置文本格式

'''
设置轴的副刻度
'''
ax.xaxis.set_minor_locator(MultipleLocator(10))  # 设置10倍数
ax.xaxis.set_minor_formatter(FormatStrFormatter('%2.1f'))  # 设置文本格式
ax.yaxis.set_minor_locator(MultipleLocator(25))  # 设置25倍数
ax.yaxis.set_minor_formatter(FormatStrFormatter('%1.0f'))  # 设置文本格式
ax.tick_params(which='minor', width=1, labelsize=10,bottom=True)
ax.tick_params(which='minor', length=2, labelsize=10, labelcolor='0.25')
plt.show()

5、图例

在plot()的时候增加labe添加文本内容,通过legend()显示出来。
示例:

import matplotlib.pyplot as plt
import numpy as np
'''
生成数据
'''
x = np.linspace(-8, 8, 80)
y = x*3

plt.plot(x, y,label="x*3")
plt.plot(x, y*1.5,label="x*4.5")
plt.legend(loc='lower right')
plt.show()

在这里插入图片描述

6、spines设置

  • 属性:
函数说明默认值
set_visible(bool)边框的可见性True
ax.xaxis.set_ticks_position({“top”,“left”……})刻度的显示位置外面(不是ax.spines[’ '].)
set_position({“top”,“left”……})边框的位置左下角为交点
set_color(string)边框的颜色“black"(当值为None也是隐藏)
set_linewidth(int)边框的宽度1
set_linestyle(string)边框的线性”-“
  • 箭头
    导入axisartist
    import mpl_toolkits.axisartist as axisartist

1、隐藏原有的边框坐标系
2、创建新的坐标系,添加箭头
3、创建新的坐标系时ax.new_floating_axis(0, 0)第一个参数:0表示横线,1表示竖线,第二个参数:表示经过那个坐标点。

import matplotlib.pyplot as plt
import numpy as np
import mpl_toolkits.axisartist as axisartist
# 生成数据
x = np.linspace(-10, 10, 80)
y = x*3

plt.plot(x, y)


ax = plt.gca()

'''
使用ax.spines[]选定边框,使用set_color()将选定的边框的颜色设为 none
'''
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')

'''
移动坐标轴,将bottom即x坐标轴移动到y=0的位置
ax.xaixs为x轴,set_ticks_position()用于从上下左右(top/bottom/left/right)四条脊柱中选择一个作为x轴
使用set_position()设置边框位置:y=0的位置。位置的所有属性包括:outward、axes、data
'''
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))

'''
将left 即y坐标轴设置到x=0的位置
'''
ax.yaxis.set_ticks_position('left')  # 选定y轴
ax.spines['left'].set_position(('data', 0))


'''
不显示网格
'''
plt.grid( None)
plt.show()

在这里插入图片描述

7、多图的处理

  • subplot()
    plt.subplot(m,n,p)m和n代表在一个图像窗口中显示m行n列个图像,也就是整个figure中有n个图是排成一行的,一共m行,后面的p代表现在选定第p个图像区域,即在第p个区域作图
import matplotlib.pyplot as plt
fig=plt.figure()
'''
子图1 第1行第1列
'''
ax1=fig.add_subplot(221) #2*2的图形 在第一个位置
ax1.text(0.5,0.5, 'one',ha='center',va='center',size=20,alpha=.5)
'''
子图2 第1行第2列
'''
ax2=fig.add_subplot(222)
ax2.text(0.5,0.5, 'one',ha='center',va='center',size=20,alpha=.5)
'''
子图3 第2行第1列
'''
ax3=fig.add_subplot(223)
ax3.text(0.5,0.5, 'one',ha='center',va='center',size=20,alpha=.5)
'''
子图4 第2行第2列
'''
ax4=fig.add_subplot(224)
ax4.text(0.5,0.5, 'one',ha='center',va='center',size=20,alpha=.5)
plt.show()

在这里插入图片描述

8、 常用的对象:

  • figure 画布
  • axes 坐标系,一个画布上可以有多个坐标系
  • axis 坐标轴,一个坐标系中可以有多个坐标轴,一般都是二维平面坐标系,或者三维立体坐标系
  • title 标题
  • legend 图例
  • grid 背景网格
  • tick 刻度
  • axis label 坐标轴名称
  • tick label 刻度名称
    • major tick label 主刻度标签
    • minor tick label 副刻度标签
  • line 线
  • style 线条样式
  • marker 点标记
  • font 字体相关

总结

`本文仅仅简单介绍了Matplotlib在绘图中经常使用到的函数,而matplotlib中具体每种图表的制作,在后续的文章中逐一进行详细的介绍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Anaconda是一个用于科学计算的Python发行版,它包含了许多常用的科学计算包和工具。它的主要特点是集成了conda包管理器,可以方便地创建、管理和切换不同的Python环境。通过Anaconda,用户可以轻松地安装和使用各种科学计算包,如NumPy、Pandas、Matplotlib等。 Anaconda的基本概念包括以下几个方面: 1. Conda:Conda是Anaconda的包管理器,它可以用于安装、更新和删除软件包。Conda还可以创建和管理不同的Python环境,以便在不同的项目中使用不同的软件包版本。 2. 环境(Environment):环境是Anaconda中的一个概念,它是一个独立的Python运行环境,包含了特定版本的Python解释器和一组安装的软件包。通过创建不同的环境,用户可以在不同的项目中使用不同的软件包版本,避免版本冲突问题。 3. 包(Package):包是指在Anaconda中可安装的软件包,如NumPy、Pandas等。用户可以使用Conda来安装、更新和删除这些软件包。 4. Anaconda Navigator:Anaconda Navigator是一个可视化的界面,用于管理和启动Anaconda中的环境和软件包。用户可以通过Anaconda Navigator来创建、删除和切换环境,以及安装和更新软件包。 5. Anaconda Prompt:Anaconda Prompt是一个命令行界面,用户可以在其中使用Conda命令来管理环境和软件包。 通过Anaconda,用户可以方便地搭建和管理Python环境,安装和使用各种科学计算包,提高科学计算的效率和便利性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值