编译平台:PyCharm
使用语言:Python
版本:2020.1

前言

  Python绘图需要依赖于第三方库提供的方法,本文重点以Matplotlib库实现绘图。

一、准备工作

1.1 导入pyplot

import matplotlib.pyplot as plt
  • 通常使用as对引用包名简写

1.2 准备数据

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
y = [3145, 222, 2342, 9002, 2031, 3213, 4535, 4332, 2134, 2000, 1672, 1213]
  • 数据可以使自己给定或通过数据清洗得到的
  • 使用绘制图前,需注意绘图的数据类型要求

二、修饰代码

描述:修饰图像信息,如补充数据说明等


2.1 绘图大小(优先级)

plt.figure(figsize=(8,4))  # 创建绘图对象并指定长宽(优先级)
  • figure()函数优先于所有绘制函数

2.2 颜色字符

应用于 参数format_string

颜色字符

说明

颜色字符

说明

‘b’

蓝色

‘m’

洋红色

‘g’

绿色

‘y’

黄色

‘r’

红色

‘k’

黑色

‘c’

青绿色

‘w’

白色

‘#008000’

RGB某颜色

‘0.8’

灰度值字符串

2.3 标记字符

应用于 参数format_string

标记字符

说明

标记字符

说明

标记字符

说明

‘.’

点标记

‘1’

下花三角标记

‘h’

竖六边形标记

‘,’

像素标记

‘2’

上花三角标记

‘H’

横六边形标记

‘o’

实心圈标记

‘3’

左花三角标记

‘+’

十字标记

‘v’

倒三角标记

‘4’

右花三角标记

‘x’

x标记

‘^’

上三角标记

‘s’

实心方形标记

‘D’

菱形标记

‘>’

右三角标记

‘p’

实心五角标记

‘d’

瘦菱形标记

‘<’

左三角标记

‘*’

星型标记



2.4 线条风格

应用于 参数format_string

标记字符

说明

标记字符

说明

‘-’

实线

‘:’

虚线

‘–’

破折线

" "

无线条

‘-.’

点画线

2.5 字体设置

2.5.1 通过 matplotlib的rcPrams修改设置
plt.rcParams['font.sans-serif'] = 'SimHei'

rcParams常用属性:

属性

说明

‘font. family’

设置字体格式

‘font. style’

设置字体风格(normal正常 或 italic斜体)

‘font. size’

设置字体大小,整数字号、‘larget’、‘x-small’

中文字体格式

中文字体

说明

中文字体

说明

‘SimHei’

中文黑体

‘FangSong’

中文仿宋

‘KaiTi’

中文楷体’

YouYuan’

中文幼圆

‘LiSu’

中文隶书

‘STSong’

华文宋体


2.5.2 在中文输出点,增加fontproperties属性
plt.xlabel('x轴', fontproperties='KaiTi', fontsize=10)  # 绘制x轴名称
plt.ylabel('y轴', fontproperties='FangSong', fontsize=12)  # 绘制y轴名称

2.6 坐标轴

2.6.1 命名
plt.xlabel('x-axis')  # 绘制x轴名称
plt.ylabel('y-axis')  # 绘制y轴名称
  • 这里是分别对x轴命名 x-axis;y轴命名 y-axis

2.6.2 限制取值范围
plt.axis([xMin, xMax, yMin, yMax])
  • xMin:x轴最小初始值
  • xMax:x轴最大结尾值
  • yMin:y轴最小初始值
  • yMax:y轴最大结尾值

或选择使用plot.xlim(xMin, xMax)plot.ylim(yMin, yMax)分别对x、y坐标轴进行调整

2.7 图像标题

这里命名图像标题为 表-XXX

plt.title("表-XXX")    # 绘制线形图标题内容

2.8 图形箭头注解

plt.annotate(text, fontsize=10, xy=(2.25, 1), xytext=(3, 15))
  • text:注解内容
  • fontsize:字体大小
  • xy:图像点坐标
  • ‘xytext’:注释内容坐标

2.9 自定义 文本内容 与 显示位置

plt.text(x, y, str)
  • x:屏幕横坐标
  • y:屏幕纵坐标
  • str:文本内容

2.10 图像存储

plt.save('.../tmp/picture.png')
  • 需落款图片格式
  • plt.show()过程后,保存的图像为所要

2.11 显示图像 (最后级)

任何对图像绘制操作需在此之前进行才生效。

plt.show()

三、绘制图像 - 核心代码

3.1 线形图

plt.plot(x, y, 'ko--')  # 进行绘图,其中k颜色字符 o标记字符 --风格字符

plt.plot(x, y, format_string, **kwargs)语法参数说明:

  • x:x轴数据(数据类型:列表 数组)
  • y:y轴数据(数据类型:列表 数组)
  • format_string:控制曲线格式字符串(由颜色字符、标记字符、风格字符组成)

3.2 条形图

垂直
plt.bar(x, height, width, bottom, ***, align, data, **kwargs)
  • x:x坐标,数据类型为 int、float
  • height:条形的高度,数据类型为 int、float
  • width:宽度 0~1,默认0.8
  • botton:条形的起始位置
  • align: 条形的显示位置
  • color: 条形的颜色
  • edgecolor:条形边框的颜色
  • linewidth:边框的宽度
  • tick_label:下标的标签
  • log:y轴是否使用科学计数法表示
  • orientation: 是竖直条还是水平条 竖直:“vertical”,水平条:“horizontal”
    与下面相同

注意:上述内容为属性,使用时遵从如x=1/align='Center'/log=true等指明修改的参数内容,默认顺序下可不用直接指明。


水平
plt.barh()

3.3 饼图/扇形图

plt.pie()
  • x:数据集,数据类型为 list
  • labels:标签 list
  • autopct:数据标签
  • explode:突出显示
  • shadow :是否显示阴影
  • pctdistance:标签与圆心距离大小
  • labeldistance:标签距离
  • startangle:绘制饼图的圆心角
    饼图 = 360°。 扇形图则不是。
  • radius:饼图半径长度

3.4 直方图

plt.hist()

3.5 散点图

plt.scatter()