Matplotlib(基本用法)

Matplotlib 是数据分析绘图的常见模块,可以算是 2D-绘图(Python)领域使用最广泛的套件,可以将数据图形化,并且提供多样化的输出格式,利于数据的显示并分析。

接下来展示的是Matplotlib 常见绘制的图形,也是我自己对知识的一种总结。

模块的导入

import matplotlib.pyplot as plt

import numpy as np

matplotlib经常会遇到中文显示不出来的问题,中文乱码设置一般在设置样式之后,之前一直没注意顺序,导致一直没看到效果(😶)

设置样式
plt.style.use('seaborn')
设置中文乱码
plt.rcParams['font.sans-serif'] = 'KaiTi'
plt.rcParams['font.sans-serif'] = ['SimHei']  #用来正常显示中文标签
忽视警告
import warnings
warnings.filterwarnings('ignore')

绘制折线图,折线图可以直观得对比数据间的变化

构造数据
breakfast = [4,8,8,6,10,4]
lunch = [25,10,10,15,50,15]
dinner = [20,30,10,30,50,40]

绘制折线图
plt.plot(breakfast,label='breakfast',linewidth=4,c='green')
plt.plot(lunch,label='lunch',linewidth=4,c='blue')
plt.plot(dinner,label='dinner',linewidth=4,c='pink')

设置样式

x_ticks = [f’星期{i}’ for i in range(1,7)]

plt.xticks(ticks=range(6),labels=x_ticks) # x轴刻度值所一一对应的值

plt.ylabel(‘消费金额:单位(元)’)

plt.title(‘深圳社畜每天三餐的消费’)

添加图例upper right 右上角 边框 透明度 阴影 边框宽度

plt.legend(loc=’upper right’,fancybox=True,framealpha=1,shadow=True,borderpad=1)

Matplotlib(基本用法)

绘制曲线图

绘制曲线图
plt.figure(figsize=(15,5)) # 设置画布
x = np.linspace(1,10,num=100)
plt.subplot(1,3,1)  # 添加分布 1行3列 第1列画布绘制
plt.plot(x,np.sin(x),linewidth='7',color='blue') # 正弦
plt.subplot(1,3,2)  # 第2列画布绘制
plt.plot(x,np.cos(x),linewidth='7',color='red') # 余弦
plt.subplot(1,3,3) # 第3列画布绘制
plt.plot(x,np.tanh(x),linewidth='7',color='green') # 正切

Matplotlib(基本用法)

绘制散点图 一般用于查看数据是否线性相关 中间可以添加直线分析

绘制散点图
x = np.random.rand(100) # rand:服从"0~1"均匀分布的随机样本值均匀分布
y = np.random.rand(100)
colors = np.random.rand(100)
sizes = np.random.rand(100)*400
plt.scatter(x,y,c=colors,s=sizes)

Matplotlib(基本用法)

绘制条形图 可以多数据(例如每一年4个季度,一起比较分析)

绘制纵向条形图
x=[2020,2025,2030,2035]
y=[1000,3000,4000,5000]

plt.figure(figsize=(15,5)) # 设置画布

plt.subplot(1,2,1)
plt.xticks(x,[f'{x}年' for x in x]) # 横坐标的刻度尺
plt.bar(x,y,width=3)
plt.xlabel('年') # 横坐标标签
plt.ylabel('销量') # 纵坐标标签
plt.title('根据年份销量对比图')

绘制横向条形图
plt.subplot(1,2,2)
plt.yticks(x,[f'{x}年' for x in x])
bars = plt.barh(x,y,height=3,color='lightblue')
for bar,d in zip(bars,y):
    x = bar.get_width() + bar.get_width()*0.01
    y = bar.get_y() + bar.get_height()/3
    text_data = d
    plt.text(x,y,text_data,fontsize=13)
plt.xlabel('销量')
plt.ylabel('年')
plt.title('根据年份销量对比图')

Matplotlib(基本用法)

绘制饼图 直观分辨哪个数据所占比份最重

构造数据
全市 = 17560061
福田区 = 1553225/全市
罗湖区 = 1143801/全市
盐田区 = 214225/全市
南山区 = 1795826/全市
宝安区 = 4476554/全市
龙岗区 = 3979037/全市
龙华区 = 2528872/全市
坪山区 = 551333/全市
光明区  = 1095289/全市
大鹏新区 = 156236/全市

explode = (0, 0, 0, 0, 0, 0.1, 0, 0, 0, 0)
labels = ['福田区','罗湖区','盐田区','南山区','宝安区','龙岗区','龙华区','坪山区','光明区','大鹏新区']
paches,texts,autotexts = plt.pie([福田区,罗湖区,盐田区,南山区,宝安区,龙岗区,龙华区,坪山区,光明区,大鹏新区],
        autopct='%0.1f%%',
        labels=labels,
        explode=explode)
plt.title('深圳市第七次全国人口普查——分区人口情况')

for text in texts:
    text.set_fontsize(10)
    text.set_color('blue')

for t in autotexts:
    t.set_fontsize(10)
    t.set_color('white')

Matplotlib(基本用法)

绘制直方图

绘制直方图
x = np.random.rand(100)

plt.hist(x,bins=10,align='mid',rwidth=0.8,histtype='barstacked') # rwidth 控制着间隙的宽度

Matplotlib(基本用法)

绘制盒图 盒图经常用于观察数据的离散程度 上下两条横线代表最大最小值,上方的空心圆代表异常值

绘制盒图
data = [np.random.normal(0,i,100) for i in range(1,4)]
vert:是否需要将箱线图垂直摆放,默认垂直摆放
notch:是否是凹口的形式展现箱线图,默认非凹口
plt.boxplot(data,vert=True,notch=True)
plt.title('boxplot')
plt.xticks([1,2,3],['box1','box2','box3']) # 横坐标三个刻度尺,分别对应三个值

Matplotlib(基本用法)

# 绘制三维图

from mpl_toolkits.mplot3d import Axes3D
x = np.linspace(-10,10,100)
y = np.linspace(-10,10,100)
X,Y = np.meshgrid(x,y) # 网格线
z = np.sqrt(X**2+Y**2)
ax = Axes3D(plt.figure())
ax.plot_surface(x,y,z)

Matplotlib(基本用法)

Original: https://www.cnblogs.com/lxxduang/p/16525232.html
Author: 小小程序员-lian
Title: Matplotlib(基本用法)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/620826/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Mysql查询优化

    mysq查询l优化 指标:执行时间 检查的行数 返回的行数 explain关键字 — 实际SQL,查找用户名为Jefabc的员工 select * from emp where …

    数据库 2023年5月24日
    0111
  • jsp规范

    jsp规范 一。jsp介绍:来自于javaee规范里面的一种jsp规范制定了如何开发jsp文件代替响应对象将处理结果写入到响应体的开发流…

    数据库 2023年6月11日
    081
  • 多商户商城系统功能拆解29讲-平台端营销-会员签到

    多商户商城系统,也称为B2B2C(BBC)平台电商模式多商家商城系统。可以快速帮助企业搭建类似拼多多/京东/天猫/淘宝的综合商城。 多商户商城系统支持商家入驻加盟,同时满足平台自营…

    数据库 2023年6月14日
    0100
  • MySQL函数学习(一)—–字符串函数

    注:笔记旨在记录 一、MySQL 字符串函数 \ 函 数 名 称 作 用 完 成 1 LENGTH 计算字符串长度 勾 2 CONCAT 字符串拼接,返回结果为连接参数产生的字符串…

    数据库 2023年6月16日
    077
  • JavaScript进阶内容——DOM详解

    JavaScript进阶内容——DOM详解 当我们已经熟练掌握JavaScript的语法之后,我们就该进入更深层次的学习了 首先我们思考一下:JavaScript是用来做什么的? …

    数据库 2023年6月14日
    0154
  • MySQL max() min() 函数取值错误

    今天日志出现异常,一步一步debug发现SQL语句返回值出错,进一步发现是max()函数返回出错。点击跳转解决办法,赶时间的朋友可以去获得答案。当然我还是希望大伙看看原由。 sel…

    数据库 2023年5月24日
    085
  • ES6 Map映射

    ES6 Map映射 Map对象保存的是 键值对。任何类型值(对象或原始值)都可以作为一个键或一个值。 基础用法 //创建 let map = new Map(); //增|改,返回…

    数据库 2023年6月11日
    093
  • Maven进行clean时报错,解决方法

    Q1:由于网络原因,maven仓库中产生了后缀LastUpdated文件,再次clean直接报错 参考方法:https://www.cnblogs.com/DDgougou/p/1…

    数据库 2023年6月9日
    0116
  • html简单学习!

    博主学习html的随记 1.常用标签 1.基础标签 2.格式标签 3.表单 4.超文本标签 5.列表 6.表格 7.样式 8.特殊符号 9.内联框架(网页嵌套) 1.常用标签 1….

    数据库 2023年6月16日
    096
  • 上传jar包到私有仓库nexus3

    上传Jar包到私有仓库Nexus3 官方文档 上传组件(Jar包) POST /service/rest/v1/components 官方例子: curl -v -u admin:…

    数据库 2023年6月9日
    084
  • 红黑树

    2-3-4树 JAVA技术交流群:737698533 定义 所有的叶子节点都拥有相同的深度 节点只能是2-节点,3-节点,或者4-节点 2节点 包含一个元素的节点,有两个子节点 3…

    数据库 2023年6月16日
    066
  • 网卡限速工具之WonderShaper

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 什么是WonderShaper …

    数据库 2023年5月24日
    090
  • MySQL之事务隔离级别和MVCC

    事务隔离级别 事务并发可能出现的问题 脏写 事务之间对增删改互相影响 脏读 事务之间读取其他未提交事务的数据 不可重复读 一个事务在多次执行一个select读到的数据前后不相同。因…

    数据库 2023年5月24日
    087
  • MySQL并行复制(MTS)原理(完整版)

    MySQL 5.6并行复制架构 MySQL 5.7并行复制原理 Master 组提交(group commit) 支持并行复制的GTID slave LOGICAL_CLOCK(由…

    数据库 2023年5月24日
    0103
  • Mysql_事务_存储过程_触发器

    一、什么是事务? 事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库…

    数据库 2023年6月11日
    092
  • grafana+prometheus如何查看tcp连接数量

    最后解决方案 经过和负责监控的大佬了解,获得了一个可行的方案:在每个pod中新增一个sidecar容器,在容器中部署node_exporter,或者在容器中放个自动查看端口连接数并…

    数据库 2023年6月9日
    0119
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球