绘图的主线逻辑
为便于理解,首先略去相关周边设置,简单将作图过程在逻辑上分为以下几部分:
1. 输入x、y轴变量为两个列表
x = [...]
y = [...]
2. x轴变量要对应到x轴刻度(如果刻度用文字表示的话)
plt.xticks(x, xticks)
# x为自变量集合,xticks为x对应刻度的集合
3. 用pyplot.plot将x轴和y轴变量联系起来。这一步在两个变量间建立联系,同时按照相关设置画图。
plt.plot(x, y)
相关周边设置(待补充)
1. 图像大小、分辨率等,用于输出
# 定义图片大小、分辨率
fig = plt.figure(figsize=None, dpi=None)
# 保存图片
plt.savefig("输出路径")
# 在程序中显示图片
plt.show()
2. 中文字体设置
#导入font_manager模块
from matplotlib import font_manager
# 导入并定义字体
Myfont01 = font_manager.FontProperties(fname="C:\Windows\Fonts\simsun.ttc")
# 在程序中调用字体
font_properties=...
3. 设置y轴的范围
# 设置y轴范围
plt.ylim(0, 100)
4. 设置x、y轴名称、图片标题等
#设置x、y轴标签
plt.xlabel("", font_properties=...)
plt.ylabel("", font_properties=...)
# 设置图片标题
plt.title("", font_properties=...)
实例:绘制上学期间各年级期末平均分
# -*- coding: utf-8 -*-
# 导入pyplot
from matplotlib import pyplot as plt
# 导入font_manager
from matplotlib import font_manager
# 导入随机数模块
import random
#设置图像大小
fig = plt.figure(figsize=(20, 12), dpi=80)
#使用font_manager设置一个待调用的字体
myfont01 = font_manager.FontProperties(fname="C:\Windows\Fonts\simsun.ttc")
#设置x轴变量,注意变量为序列
age = [x+8 for x in range(1, 17)]
#设置y轴变量,注意变量为序列
score = [random.uniform(60, 100) for x in range(16)]
#设置x轴的刻度
grade = ["小学{0}年级".format(x) for x in range(1, 7)]
grade += ["初中{0}年级".format(x-6) for x in range(7, 10)]
grade += ["高中{0}年级".format(x-9) for x in range(10, 13)]
grade += ["大学{0}年级".format(x-12) for x in range(13, 17)]
# 将x轴的变量和标签对应起来
plt.xticks(age, grade, font_properties=myfont01, rotation=45)
#设置x、y轴标签
plt.xlabel("年级", font_properties=myfont01)
plt.ylabel("期末平均分", font_properties=myfont01)
# 设置y轴范围
plt.ylim(0, 100)
# 设置图片标题
plt.title("上学期间每一年的成绩", font_properties=myfont01)
# 将x轴、y轴变量对应起来,并画图
plt.plot(age, score)
# 按照fig的设置输出图片
plt.savefig("./grade-score.png")
# 显示图片
plt.show()