1、编写程序绘制下列数学表达式的图像:
(1)线性函数y=2x+6的图像。
import numpy as np
import matplotlib.pyplot as plt # 调用
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号
x = np.linspace(-10, 10, 100) # 设置显示的域
y = 2 * x + 6 # 表达式
plt.plot(x, y, color='b', lw=1.0, label="f(x)") # 实线,线宽1.0,红色
plt.title("y=2x+6", fontsize=18) # 添加函数标签
plt.xlabel('x',fontsize=14) # x轴标引
plt.ylabel('y',fontsize=14) # y轴标引
plt.legend() # 显示图例
plt.savefig("function_1.jpg") # 保存图像
plt.show() # 显示图像
(2)余弦三角函数y=cos(2πx)的图像。
import numpy as np
import math
import matplotlib.pyplot as plt
plt.rcParams['axes.unicode_minus']=False
x = np.linspace(-1, 1, 100)
y = np.cos(2*math.pi*x) # 需要用np.cos()
plt.plot(x, y, color='b', lw=1.0, label="f(x)")
plt.title("y= cos(2πx)", fontsize=18)
plt.xlabel('x',fontsize=14)
plt.ylabel('y',fontsize=14)
plt.legend()
plt.savefig("function_2.jpg")
plt.show()
(3)函数f(x)=((sin(x−2))^2)*e^(−x2)的图像。
import numpy as np
import math
import matplotlib.pyplot as plt
plt.rcParams['axes.unicode_minus']=False
x = np.linspace(-math.pi+2, 2+math.pi, 100)
y = ((np.sin(x-2))**2)*(np.power(math.e,-(x**2)))
plt.plot(x, y, color='b', lw=1.0, label="f(x)")
plt.title("y=(sin(x-2))^2)*(e^(-x^2)", fontsize=18)
plt.xlabel('x',fontsize=14)
plt.ylabel('y',fontsize=14)
plt.legend()
plt.savefig("function_3.jpg")
plt.show()
(4)多项式y=4x^5-10x^3+7x+x^(-2)+10的图像。
import numpy as np
import math
import matplotlib.pyplot as plt
plt.rcParams['axes.unicode_minus']=False
x = np.linspace(-10, 10, 100)
y = 4*(x**5)-10*(x**3)+7*x+1/(x**2)+10
plt.xlim(-20, 20) # 缩小显示域,提高细节显示
plt.ylim(-10, 40)
plt.plot(x, y, color='b', lw=1.0, label="f(x)")
plt.title("y=4x^5-10x^3+7x+x^(-2)+10", fontsize=18)
plt.xlabel('x',fontsize=14)
plt.ylabel('y',fontsize=14)
plt.legend()
plt.savefig("function_4.jpg")
plt.show()
2、采用random.choice((20,35),k=12)
模拟一组随机温度值,绘制10点到12点的温度折线图(每10分钟一个温度值),观察温度的变化情况。
import random
import matplotlib.pyplot as plt
a = random.choices((20, 35), k=12) # 生成温度列表
b = ["10:10", "10:20", "10:30", "10:40", "10:50", "11:00", "11:10", "11:20", "11:30", "11:40", "11:50", "12:00"]
plt.plot(b, a, linestyle="--", linewidth=3.0,color='g',marker='s') # 虚线,线宽3.0,绿色,方框点
plt.xlabel("时间",fontsize=20)
plt.ylabel("温度",fontsize=20)
plt.savefig('function_5.jpg')
plt.show()
3、绘制北京3,10月份每天白天的最高气温随时间(天)变化的散点图,并找出规律。 数据来源:天气网(北京历史天气查询_北京历史天气预报_北京历史天气记录_北京历史气温_天气网 )
- 3月份数据如下:
a=[11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23] - 10月份数据如下:
b=[26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6] -
a = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23] b = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6] plt.scatter(range(1,32),a,color='g',marker='*') # 1到31号,绿色,星形点 plt.scatter(range(1,32),b,color='b',marker='o') # 1到31号,蓝色,圆形点 plt.rcParams['font.sans-serif']=['SimHei'] # 正常显示中文 plt.xlabel("日期",fontsize=20) plt.ylabel("单日最高气温",fontsize=20) plt.annotate(xy=[31,23],s="3月温度最高点",fontsize=16) # 标定最高点,写个标注 plt.annotate(xy=[3,28],s="10月份温度最高点",fontsize=16) # 同上 plt.title("北京3,10月份每天白天的最高气温随时间(天)变化",fontsize=20) plt.legend(["3月份","10月份"], loc=1, frameon=True) plt.grid() #显示方格点 plt.savefig('function_6.jpg') plt.show() print("3月份温度总体递增") print("10月份温度总体递减")
4、假设你获取到了某年内地电影票房前20的电影(列表a)和电影票房数据(列表b),那么如何更加直观的展示该数据?
-
a = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:最后的骑士","摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷髅岛","极限特工:终极回归","蝙蝠侠:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊"]a=["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:最后的骑士","摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷髅岛","极限特工:终极回归","蝙蝠侠:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊"]
-
b=[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32] (单位:亿元)
-
import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] a = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:最后的骑士","摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷髅岛","极限特工:终极回归","蝙蝠侠:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊"] b = [56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55] c = [] # 做个饼图 for i in range(0,14): str_c = str(a[i]) + ":" + str(b[i]) + "亿元" c.append(str_c) # 这里和上面的几步是用来形成一个电影名和票房在一起的列表 explode = (0.1,0,0,0,0,0,0,0,0,0,0,0,0,0) # 对最高票房进行突出(第一个) plt.pie(b, explode=explode, labels=c, autopct='%1.1f%%', shadow=True,startangle=0) # 立体饼图,从0度位置开始绘制 plt.axis('equal') plt.title("各热门电影票房及占比") plt.savefig('function_7.jpg') plt.show() plt.plot(a, b, linestyle="--", linewidth=3.0, color='g', marker='s') # 再做个折线图 plt.xlabel("电影名称",fontsize=20) plt.ylabel("票房/亿元",fontsize=20) plt.savefig('function_8.jpg') plt.show()