用Matplotlib画二次函数
- 首先导入 Matplotlib 包中的 Pyplot 模块,并以 as 别名的形式简化引入包的名称。
from matplotlib import pyplot as plt
#import matplotlib.pyplot as plt
- 接下来,使用 NumPy 提供的函数 arange() 创建一组数据来绘制图像。
# 引入numpy包
import numpy as np
# 获得-50到50之间的ndarray对象
x = np.arange(-50,51)
- 上述所得 x 的值作用到 x 轴上,而该值对应的平方值,也就是 y 值,使用以下方式获取
y = x **2
- 使用 plt的plot()函数对 x、y 进行绘制。
# plot() 绘制线性图表
plt.plot(x,y)
matplotlib的基本方法
方法名 | 说明 |
---|---|
title() | 设置图表的名称 |
xlabel() | 设置x轴名称 |
ylabel() | 设置y轴名称 |
xticks(ticks,label,rotation) | 设置x轴的刻度,rotation旋转角度 |
yticks() | 设置y轴的刻度 |
show() | 显示图表 |
legend() | 显示图例 |
text(x,y,text) | 显示每条数据的值 x,y值的位置 |
1. 图表名称 plt.title()
import numpy as np
# x轴获得-50到50之间的ndarray对象
x = np.arange(-50,50)
# y轴的值是x轴的平方
y = x **2
# 设置图表的名称
plt.title("y= x^2")
# 绘制图形
plt.plot(x,y)
如果标题是中文
plt.title("y等于x的平方-")
plt.plot(x,y)
修改字体配置 plt.rcParams[“font.sans-serif”]
字体说明:
中文字体 | 说明 |
---|---|
‘SimHei’ | 中文黑体 |
‘Kaiti’ | 中文楷体 |
‘LiSu’ | 中文隶书 |
‘FangSong’ | 中文仿宋 |
‘YouYuan’ | 中文幼圆 |
STSong | 华文宋体 |
临时设置
#修改轴中的负号编码
plt.rcParams['axes.unicode_minus'] = False #设置字体,不设置负号,负号会消
# 创建x为-10到10的整数
x = np.arange(-10,11)
# y是x的平方
y = x ** 2
# 设置标题
plt.title('y=x^2 x取值范围为:[-10,10)')
plt.plot(x, y)
字体问题总结:
需要修改2个配置信息:
`plt.rcParams['font.sans-serif']=['SimHei']`
# 用来设置字体样式以正常显示中文标签
`plt.rcParams['axes.unicode_minus']=False`
# 默认是使用Unicode负号,设置正
x轴和y轴名称
xlabel() ylabel()**
# 创建x为-10到10的整数
x = np.arange(-10,10)
# y是x的平方
y = x ** 2
# 设置标题
plt.title('y=x^2 x取值范围为:[-10,10)')
# 设置x轴名称
plt.xlabel("x 轴")
# 设置y轴名称
plt.ylabel("y 轴")
plt.plot(x, y)
对于上面的图,如果觉得字体偏小或线条太细,可以设置标签文字大小和线条粗细
fontsize参数: 设置文字大小
linewidth参数: 设置线条
# 设置x轴名称 ,值不能写"12px"
plt.xlabel("x 轴",fontsize=12)
# 设置y轴名称
plt.ylabel("y 轴")
plt.plot(x, y,linewidth=5)
绘制多个线条
# 创建x为-10到10的整数
x = np.arange(-10,10)
# y1是x的平方
y1 = x ** 2
# y2等于x
y2 = x
# 设置标题
plt.title('y=x^2 x取值范围为:[-10,10)',fontsize=16)
# 设置x轴名称
plt.xlabel("x 轴",fontsize=12)
# 设置y轴名称
plt.ylabel("y 轴")
# 绘图线条1
plt.plot(x, y1)
# 绘图线条2
plt.plot(x, y2)
设置x轴和y轴的刻度
matplotlib.pyplot.xticks(ticks=None, labels=None, **kwargs)
matplotlib.pyplot.yticks(ticks=None, labels=None, **kwargs)
- ticks: 此参数是xtick位置的列表。和一个可选参数。如果将一个空列表作为参数传递,则它将删除所有xticks
- label: 此参数包含放置在给定刻度线位置的标签。它是一个可选参数。,
- **kwargs:此参数是文本属性,用于控制标签的外观
- rotation:旋转角度 如:rotation=45
- color:颜色 如:color=“red”
xticks到底有什么用,其实就是想把坐标轴变成自己想要的样子
# 日期
times = np.arange(1990,2020).astype(np.str_)
# 销量
sales = np.random.randint(500,2000,size=len(times))
# 绘图
plt.xticks(range(0,len(times),2),['%s年'%i for i in times],rotation=45)
plt.plot(times,sales)