【机器学习】【Matplotlib】013_Matplotlib绘图基础(2)

一、在一个坐标系中绘制多个图像

需求:再添加一个城市的温度变化(收集到北京当天的温度变化情况,温度在1到3度)。

做法:用不同的线条多次plot,并在右上角添加图例。

import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams["axes.unicode_minus"]=False #该语句解决图像中的“-”负号的乱码问题
import random

### 画出温度变化图
## 1.准备x, y坐标的数据(后续可以通过文件读取等操作更换x, y值)
x = range(60)
y_shanghai = [random.uniform(15,18) for i in x] # 列表生成式,随机生成在a和b范围内的实数
# 在一个坐标系中绘制多个图像
y_beijing = [random.uniform(1, 3) for i in x]

## 2.创建画布
plt.figure(figsize=(20,8), dpi=100)

## 3.绘制折线图
plt.plot(x, y_shanghai, label = "上海")
plt.plot(x,y_beijing, color = 'r', linestyle = '--', label = "北京")

## 4.修改刻度
# 构造x轴、y轴刻度标签
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)
# 修改x, y轴坐标的刻度显示
plt.xticks(x[::5], x_ticks_label[::5])
plt.yticks(y_ticks[::5])

## 5.添加网格显示
plt.grid(True, linestyle = '--', alpha = 0.5)

## 6.添加描述信息
plt.xlabel("时间", fontsize = 15)
plt.ylabel("温度", fontsize = 15)
plt.title("中午11点0分到12点之间的温度变化图示", fontsize = 20)

## 7.显示图像
plt.legend(loc = "best")
plt.show()

二、在多个坐标系中显示多个图像

做法:使用subplots函数实现

· matplotlib.pyplot.subplots(nrows=1,ncols=1,**fig_kw)创建一个带有多个axes的图

· 对于一般的操作而言,将上一版本代码中的plt改换为axes[]中的对象即可实现。

import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams["axes.unicode_minus"]=False #该语句解决图像中的“-”负号的乱码问题
import random

### 画出温度变化图
## 1.准备x, y坐标的数据(后续可以通过文件读取等操作更换x, y值)
x = range(60)
y_shanghai = [random.uniform(15,18) for i in x] # 列表生成式,随机生成在a和b范围内的实数
y_beijing = [random.uniform(1, 3) for i in x]

## 2.创建画布
fig, axes = plt.subplots(nrows = 1, ncols = 2, figsize = (20,8), dpi = 100)

## 3.绘制折线图
axes[0].plot(x, y_shanghai, label = "上海")
axes[1].plot(x,y_beijing, color = 'r', linestyle = '--', label = "北京")

## 4.添加x,y轴刻度
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)

axes[0].set_xticks(x[::5])
axes[0].set_yticks(y_ticks[::5])
axes[0].set_xticklabels(x_ticks_label[::5])
axes[1].set_xticks(x[::5])
axes[1].set_yticks(y_ticks[::5])
axes[1].set_xticklabels(x_ticks_label[::5])

## 5.添加网格显示
axes[0].grid(True, linestyle = '--', alpha = 0.5)
axes[1].grid(True, linestyle = '--', alpha = 0.5)

## 6.添加描述信息
axes[0].set_xlabel("时间", fontsize = 15)
axes[0].set_ylabel("温度", fontsize = 15)
axes[0].set_title("中午11点0分到12点之间的温度变化图示", fontsize = 20)
axes[1].set_xlabel("时间", fontsize = 15)
axes[1].set_ylabel("温度", fontsize = 15)
axes[1].set_title("中午11点0分到12点之间的温度变化图示", fontsize = 20)

## 7.显示图例
axes[0].legend(loc="best")
axes[1].legend(loc="best")

## 8.显示图像
plt.show()

三、折线图的应用场景

· 呈现公司产品每天活跃用户数

· 呈现APP下载次数

· 呈现产品新功能上线后,用户点击次数随时间的变化

· 拓展:画各种数学函数的图像

import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams["axes.unicode_minus"]=False #该语句解决图像中的“-”负号的乱码问题
import numpy as np

# 1.准备数据
x = np.linspace(0, 10, 1000)    # 从0到10之间生成1000个数
y = np.sin(x)   # 具体的函数表示式

# 2.创建画布
plt.figure(figsize=(20, 8), dpi=100)

# 3.绘制函数图像
plt.plot(x, y)
# 3.1添加网格显示
plt.grid(True, linestyle = '--', alpha = 0.5)

# 4.绘制图像
plt.show()

四、其它图形绘制:柱状图、散点图、直方图、饼图等

· 柱状图:

plt.bar(

        x, y:需要传递的数据;

        width:柱状图的宽度;

        align=:每个柱状图的位置对齐方式('center', 'edge'),optional, 默认为'center';

        **kwargs;

        color:柱状图的颜色;

)

· 直方图:

matplotlib.pyplot.hist(

        x:需要传递的数据;

        bins:组距;

)

· 饼图:

plt.pie(

        x:数量,自动算百分比;

        labels:每部分名称;

        autopct=:占比显示指定'%1.2f%%'

        colors:每部分颜色;

)

· 散点图:

plt.scatter(

        x, y;

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值