编译平台: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()