一、编程目的:
1、绘制饼图
2、绘制函数图像
3、绘制求解非线性方程组
4、绘制气泡图
二、编程环境:
1、python3+pycharm
2、导入模块:
扩展库numpy
扩展库scipy
三、编程效果:
四、编程代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import numpy as np #导入扩展库numpy(数组、函数等)
from scipy.optimize import fsolve #导入扩展库scipy(求解线性方程组,矩阵、数值计算等)
import scipy
from scipy import integrate #导入扩展库scipy(积分函数)
import matplotlib.pyplot as plt #导入扩展库matplotlib(数据可视化、作图工具等)
plt.rcParams['font.sans-serif'] = ['SimHei'] #图像中正常显示中文字体
def f1():
#绘制饼图
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)
fig1, ax1 = plt.subplots()
ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
shadow=True, startangle=90)
ax1.axis('equal')
plt.title('饼图') # 标题
plt.show()
def f2():
#绘制函数图形
x = np.linspace(0,20,1000) #作图的自变量x
y = np.sin(x) + 1 #因变量y
z = np.cos(x**3) + 1 #因变量z
plt.figure(figsize=(8,4)) #设置图像大小
plt.plot(x,y,label = '$\sinx+1$',color = 'red',linewidth = 2) #作图,设置标签、线条颜色、线条大小
plt.plot(x,z,'b--',label = '$\cosx^3+1$',linewidth = 1) #作图,设置标签、
plt.xlabel('Times(s)') #x轴名称
plt.ylabel('Volt') #y轴名称
plt.title('函数图像') #标题
plt.ylim(0,2.2) #y轴的范围
plt.legend() #显示图例
plt.show() #显示作图结果
def f3():
#求解非线性方程组
def f(x):
x1 = x[0]
x2 = x[1]
return [2*x1-x2**2-1,x1**2-x2-2]
result = fsolve(f,[1,1])
print(result[0],result[1])
x = np.linspace(0,20,1000) #作图的自变量x
y = np.sqrt(2*x-1) #因变量y
z = np.square(x)-2 #因变量z
plt.figure(figsize=(8,4)) #设置图像大小
plt.plot(x,y,label = '$\sinx+1$',color = 'red',linewidth = 2) #作图,设置标签、线条颜色、线条大小
plt.plot(x,z,'b--',label = '$\cosx^3+1$',linewidth = 1) #作图,设置标签、
plt.xlabel('Times(s)') #x轴名称
plt.ylabel('Volt') #y轴名称
plt.title('求解非线性方程组') #标题
plt.ylim(0,2.2) #y轴的范围
plt.legend() #显示图例
plt.show() #显示作图结果
def f4():
#随机气泡图
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = np.pi * (15 * np.random.rand(N))**2 # 0 to 15 point radii
plt.scatter(x, y, s=area, c=colors, alpha=0.5)
plt.title('气泡图') # 标题
plt.show()
f1()
f2()
f3()
f4()