IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Matplotlib常见统计图绘制方法 -> 正文阅读

[人工智能]Matplotlib常见统计图绘制方法

0、Matplotlib常见统计图

Matplotlib中常见的统计图有折线图、散点图、直方图、条形图等。其中,折线图一般用来描述数据数据的变化情况,通过折线图可以清晰的看到数据的变化走势,例如股票市场中的分时线走势。

散点图用于寻找变量(x ,y)的关系,展示离群点,分析潜在联系等,例如猪周期,24节气与变盘点对应关系,黄金价格与美元汇率关系等。

直方图用来显示定量数据的分布,例如图像分析中的灰度直方图、颜色直方图、梯度直方图等。

而条形图则是对分类对象进行分组,而不是根据具体数值进行分组,分组顺序可以调整。例如不同国家GDP情况,深度学习分类任务中不同类别样本统计等。

1、折线图绘制方法

1)绘制单条折线

from matplotlib import pyplot as plt
import random

import matplotlib
matplotlib.use('TkAgg')

matplotlib.rcParams['font.sans-serif']=['SimHei']


x = range(0,120)
y = [random.randint(20,35) for i in range(120)]

plt.figure(figsize=(20,8),dpi=80)

plt.plot(x,y)

#调整x轴的刻度
_xtick_labels = ["10点{}分".format(i) for i in range(60)]
_xtick_labels += ["11点{}分".format(i) for i in range(60)]
#取步长,数字和字符串一一对应,数据的长度一样
plt.xticks(list(x)[::3],_xtick_labels[::3],rotation=45) #rotaion旋转的度数

#添加描述信息
plt.xlabel("时间")
plt.ylabel("温度 单位(℃)")
plt.title("10点到12点每分钟的气温变化情况")

plt.show()

气温-时间变化图
其中需要注意xticks中ticks要和labels一一对应(def xticks(ticks=None, labels=None, **kwargs))

2)绘制多条折线

from matplotlib import pyplot as plt
import matplotlib
matplotlib.use('TkAgg')

matplotlib.rcParams['font.sans-serif']=['SimHei']

y_1 = [1,0,1,1,2,4,3,2,3,4,4,5]
y_2 = [1,0,3,1,2,2,3,3,2,1 ,2,2]

x = range(1,13)

#设置图形大小
plt.figure(figsize=(20,8),dpi=80)

plt.plot(x,y_1,label="军工etf",color="#F08080")
plt.plot(x,y_2,label="酒etf",color="#DB7093",linestyle="--")

#设置x轴刻度
_xtick_labels = ["{}月".format(i) for i in x]
plt.xticks(x,_xtick_labels)
# plt.yticks(range(0,9))

#绘制网格
plt.grid(alpha=0.4,linestyle=':')

#添加图例
plt.legend(loc="upper left")

#展示
plt.show()

在这里插入图片描述

2、散点图绘制方法

from matplotlib import pyplot as plt
from matplotlib import font_manager
import matplotlib
matplotlib.use('TkAgg')

matplotlib.rcParams['font.sans-serif']=['SimHei']
y_3 = [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]
y_10 = [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]

x_3 = range(1,32)
x_10 = range(51,82)

#设置图形大小
plt.figure(figsize=(20,8),dpi=80)

#使用scatter方法绘制散点图,和之前绘制折线图的唯一区别
plt.scatter(x_3,y_3,label="3月份")
plt.scatter(x_10,y_10,label="10月份")

#调整x轴的刻度
_x = list(x_3)+list(x_10)
_xtick_labels = ["3月{}日".format(i) for i in x_3]
_xtick_labels += ["10月{}日".format(i-50) for i in x_10]
plt.xticks(_x[::3],_xtick_labels[::3],rotation=45)

#添加图例
plt.legend(loc="upper left")

#添加描述信息
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("标题")
#展示
plt.show()

在这里插入图片描述

3、直方图绘制方法

import cv2 as cv
from matplotlib import pyplot as plt
import matplotlib

matplotlib.rcParams['font.sans-serif']=['SimHei']

# 读取图片
img = cv.imread('wiki.jpg',0)

# 开1行两列窗口,选1号窗口操作
plt.subplot(121)
# 绘制灰度图
plt.imshow(img,cmap='gray')
plt.title("图片")
# 选择2号窗口
plt.subplot(122)
# 绘制图像直方图
plt.hist(img.flatten(),256,[0,256], color = 'b',label="histogram")
plt.xlim([0,256])
plt.grid(alpha=0.4)
plt.legend(loc = 'upper right')
plt.show()

在这里插入图片描述

4、条形图绘制方法

以读取德国交通标志牌分类数据集为例,统计每类标志牌数量

import csv
from collections import Counter
from matplotlib import pyplot as plt
import matplotlib
matplotlib.use('TkAgg')


# 读取德国交通标志数据集标注文件
with open('train_data.csv','r') as f:
    reader = csv.reader(f)
    column = [row[1] for row in reader]
    print(column)

classes = [int(i) for i in column]

print(max(classes))
print(min(classes))

# 计算每个类别的数量
numClasses = Counter(classes)

#设置图形大小
plt.figure(figsize=(20,8),dpi=80)

# 条形图宽度小于刻度时 每个类别的条形图分开
plt.bar(range(len(numClasses)), list(numClasses.values()), align='center',width=0.8)
plt.xticks(range(len(numClasses)), list(numClasses.keys()))



plt.grid(alpha=0.4)
plt.show()

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-10 13:25:17  更:2021-08-10 13:26:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 21:31:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码