python数据分析之图表入门1《数学函数图像》

第一个图表:一元二次函数$y=2x^2+3x+4$

1、导入库

import matplotlib.pyplot as plt  #导入matplotlib.pyplot绘图库

2、准备数据(list或numpy或linspace),二者选一种即可。

  ①、列表(list)

x,y=[],[]                   #初始化两个列表,分别表示定义域和值域
for i in range(-10,11):
	x.append(i)             #在定义域中增加数值
	y.append(2*i*i+3*i+4)   #在值域中对应增加数值

  ②、Numpy

import numpy as np    #导入numpy库
x=np.arange(-10,11)   #numpy库arange(x,y,z)函数功能是在[x,y)区间从x开始步长为z取数,z默认1。
y=2*x*x+3*x+4

3、绘制图表

  3.1、绘制基础图表

plt.plot(x,y)    #用x和y做数据,描出所有的(x,y)并连接成折线
plt.show()       #显示图表

 

  3.2、增加标签

plt.xlabel('x轴标签')
plt.ylabel('y轴标签')
plt.title('y=2*x*x+3*x+4')
#
plt.plot(x,y)    #用x和y做数据,描出所有的(x,y)并连接成折线
plt.show()       #显示图表

Q:出现错误1、如图红色箭头处的乱码。2、程序运行错误提示“..............font.set_text(s, 0.0, flags=flags)..................”。

A:需要中文支持。在使用中文之前,增加中文字体设置。修改代码如下: 

plt.rcParams['font.family'] =  ['SimHei']	# 解决中文显示异常的问题
plt.xlabel('x轴标签')
plt.ylabel('y轴标签')
plt.title('y=2*x*x+3*x+4')
plt.plot(x,y)    #用x和y做数据,描出所有的(x,y)并连接成折线
plt.show()       #显示图表

Q:出现负号乱码。如图红色箭头处。

A:增加编码支持。在show()显示图表之前,增加编码设置。修改代码如下:

plt.rcParams['font.family'] =  ['SimHei']	# 解决中文显示异常的问题
plt.rcParams['axes.unicode_minus'] = False	# 解决负号显示异常的问题
#
plt.xlabel('x轴标签')
plt.ylabel('y轴标签')
plt.title('y=2*x*x+3*x+4')
#
plt.plot(x,y)    #用x和y做数据,描出所有的(x,y)并连接成折线
plt.show()       #显示图表

4、叠加$y=x^3$图像

  4.1、增加同一定义域x对应的另一个值域y。并增加plot()

plt.title('y1=2*x*x+3*x+4\ny=x*x*x')           #修改标题
#
g=x**3           #计算第二个函数在定义域x上对应值域
plt.plot(x,g)    #用x和g做数据,描出所有的(x,g)并连接成折线
#
plt.plot(x,y)    #用x和y做数据,描出所有的(x,y)并连接成折线
plt.show()       #显示图表

  4.2、增加图例

  在所有plot()绘制数据线之后,使用legend()增加图例,设置数据标签。

plt.plot(x,y)
#
plt.legend(labels = ('y1=2*x*x+3*x+4', 'y=x*x*x'), loc = 'lower right') #在右下角增加图例并设置数据标签
plt.show()

  4.3、保存图像

  在所有数据准备好之后,用show()显示图表,用savefig()保存图表为png图片文件。

plt.legend(labels = ('y1=2*x*x+3*x+4', 'y=x*x*x'), loc = 'lower right') 
plt.savefig('tuxiang.png')       #保存图表
plt.show()

5、完成基本绘图

  5.1、完整代码如下:

import matplotlib.pyplot as plt  #导入matplotlib.pyplot绘图库
import numpy as np    #导入numpy库
x=np.arange(-10,11)   #numpy库arange(x,y,z)函数功能是在[x,y)区间从x开始步长为z取数,z默认1。
y=2*x*x+3*x+4
#
plt.rcParams['font.family'] =  ['SimHei']   # 解决中文显示异常的问题
plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示异常的问题
#
plt.xlabel('x轴标签')
plt.ylabel('y轴标签')
plt.title('y1=2*x*x+3*x+4\ny=x*x*x')
#
g=x**3           #计算第二个函数在定义域x上对应值域
plt.plot(x,g)    #用x和g做数据,描出所有的(x,g)并连接成折线
#
plt.plot(x,y)    #用x和y做数据,描出所有的(x,y)并连接成折线
plt.legend(labels = ('y1=2*x*x+3*x+4', 'y=x*x*x'), loc = 'lower right') #在右下角增加图例并设置数据标签
#
plt.savefig('tuxiang.png') #保存图表
plt.show()                 #显示图表

 

posted @ 2022-05-05 16:36  春生万物  阅读(17)  评论(0)    收藏  举报