Matplotlib使用教程

Posted feilstar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matplotlib使用教程相关的知识,希望对你有一定的参考价值。

1.Matplotlib简介

Matplotlib是一个Python绘图库,可以非常方便的绘制出以下图形:

  • 折线图
  • 散点图
  • 条形图
  • 直方图
  • 以及等高线图、3D图形,甚至是图形动画等。

2.安装

2.1 方式一

在命令窗口执行以下命令:

pip install matplotlib

2.2 方式二

官网去下载对应的安装包,然后在命令窗口执行以下命令:

cd download  # download为下载目录
pip install xxx.whl  # xxx.whl为安装包名

注:Windows环境需要确保安装有Visual Studio。

3.基础使用

3.1 基本用法

  • 导包
from matplotlib import pyplot as plt
  • 配置x轴、y轴数据
x = [1, 2, 3]
y = [2, 4, 6]
  • 绘制
plt.plot(x, y)
  • 展示
plt.show()
  • 保存
plt.savefig("./sig_size.png")

参数为图片保存地址。

  • 效果图
    技术图片

3.2 设置图片和线条格式

注:所有设置都需要放在图片绘制前

  • 设置图片
fig = plt.figure(figsize=(20, 8), dpi=80)

figsize设置的是图片的长和宽,单位为英寸;dpi为每英寸长度内像素点数;上面的设置生成的图片大小为1600x640(像素)。

  • 设置线条格式
plt.plot(x, y, color="red", linestyle="-.", linewidth=5, alpha=0.4)

color设置的是线条颜色,linestyle设置的是线条样式,linewidth设置的是线条宽度,alpha设置的是线条的透明度。

  • 效果图
    技术图片

3.3 设置坐标轴

  • 设置中文支持
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname="C:WindowsFontsmsyh.ttf")

fname对应的是系统中文字体位置(其他类型字体没试过,自行尝试)。

  • 设置坐标轴刻度
plt.xticks(x, x_ticks_labels, rotation=0, fontproperties=my_font)
plt.yticks(y, y_ticks_labels, rotation=45, fontproperties=my_font)

x,y为数字类型数组,x_ticks_labels、y_ticks_labels为字符串类型数组,一般是对应数据的说明;rotation设置的是标签的旋转度;fontproperties设置的是字体。

  • 设置坐标轴描述信息
plt.xlabel("产品", fontproperties=my_font)
plt.ylabel("销量", fontproperties=my_font)
  • 设置坐标轴边框
ax = plt.gca()
ax.spines[‘right‘].set_color(‘none‘)
ax.spines[‘top‘].set_color(‘none‘)
  • 设置x轴标签和坐标轴位置
ax.xaxis.set_ticks_position(‘bottom‘)
ax.yaxis.set_ticks_position(‘left‘)
ax.spines[‘left‘].set_position((‘data‘, 0))
ax.spines[‘bottom‘].set_position((‘data‘, 0))

第一行代码是调整x轴标签位置,后两行代码调整的是坐标轴的位置(此项设置必须放在设置坐标轴刻度之前,否则刻度为中文时会显示为乱码)。
+效果图
技术图片

3.4 添加图例

plt.plot(x, y, color="red", linestyle="-.", linewidth=5, alpha=0.4, label="产品销量")
plt.legend(prop=my_font, loc=("upper left"))

绘制时添加label标签,loc设置的是图例显示的位置
效果图:
技术图片

3.5 添加标注

  • annotate注释
plt.annotate(r‘这里是对(第一个点的标注)‘, xy=(x[0], y[0]), xycoords=‘data‘, xytext=(+30, -30),
             textcoords=‘offset points‘, arrowprops=dict(arrowstyle=‘->‘, connectionstyle="arc3,rad=.2"),
             fontproperties=my_font)

第一个参数是注释内容,第二个参数是需要注释的坐标点信息,第三个参数是坐标点是基于什么选择,第四个和第五个参数是注释位置设置及相对坐标点的偏移,第六个参数设置的是箭头的信息。

  • text注释
plt.text(-3.7, 3, r‘这里是普通文本注释‘, fontdict={‘size‘: 16, ‘color‘: ‘r‘}, fontproperties=my_font)

第一个和第二个参数是设置文本的位置,第三个参数设置的是注释内容,第四个参数设置的是文本的样式。

  • 效果图
    技术图片
  • 绘制网格
plt.grid(alpha=0.4)

参数设置的是网格的透明度。

4.其他类型画图

plot绘制的是折线图,其他类型与之大同小异,只是关键字不同。

  • 散点图
    关键字是scatter,即绘制图形时,将plot替换成scatter。
    技术图片
  • 条形图
    关键字是bar(纵向)以及barh横向。
    技术图片
    绘制横向条形图时xy的数据需要调换,而且为了美观,一般是y的值过大,导致图片过高时,才需要使用。
  • 直方图
    关键字是hist。因为是统计区间内的出现的次数,所以y轴不能为负(不会显示)。













以上是关于Matplotlib使用教程的主要内容,如果未能解决你的问题,请参考以下文章

VIM 代码片段插件 ultisnips 使用教程

Matplotlib

在 matplotlib 内联和 QT 后端之间切换 Python 脚本

matplotlib进阶教程:如何逐步美化一个折线图

Matplotlib实例教程折线图

Matplotlib实例教程:柱状图