python数据可视化练习

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山河之书Liu_Zixin

不要打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值