数据可视化(学会用matplotlib绘图)

2023-11-12

1.绘制简单的折线图

import matplotlib.pyplot as plt

squres = [1, 4, 9, 16, 25]
plt.plot(squres)//把列表传给plot(),这个函数尝试根据这些数字绘制出有意义的图形
plt.show()//打开matplotlib查看器,并显示绘制的图形


2.修改标签文字和线条粗细

import matplotlib.pyplot as plt

squares = [1, 4, 9, 16, 25]
plt.plot(squares, linewidth=5)//设置绘制线条的粗细
plt.title("Square Numbers",fontsize=24)//给图表指定标题,fontsize指定了文字大小
plt.xlabel("Value", fontsize=14)//xlable()和ylable()能够为每条轴设置标题
plt.ylabel("Square of Value", fontsize=14)
plt.tick_params(axis='both',labelsize=14)//tick_params()设置刻度的样式,其中指定的实参将影响x轴和y轴上的刻度(axis='both'),并将刻度标记的字号设置为14(labelsize=14)
plt.show()

3.矫正图形

根据上图我们不难发现,我们画出的图并没有正确的绘制数据:折现图的终点指出4的平方为25.现在我们就要来修复这个问题

当我们向plot()提供一系列数字时,它假设第一个数据点对应的x坐标值为0,但我们的第一个点对应的x的值为1.为改变这种默认行为,我么好可以给plot()同时提供输入值和输出值。

import matplotlib.pyplot as plt
input_values = [1, 2, 3, 4, 5]
squres = [1, 4, 9, 16, 25]
plt.plot(input_values, squres, linewidth=5)
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value", fontsize=14)
plt.ylabel("Square of Value", fontsize=14)
plt.tick_params(axis='both', labelsize=14)
plt.show()

4.使用scatter()绘制散点图并设置其样式

(1)要绘制单个点,可使用scatter(),并向它传递一对x和y坐标,它将在指定位置绘制一个点

import matplotlib.pyplot as plt
plt.scatter(2, 4, s=200)//实参s设置了绘制图形时使用的点的尺寸
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value", fontsize=14)
plt.ylabel("Square of Value", fontsize=14)
plt.tick_params(axis='both', which='major',labelsize=14)
plt.show()

(2)使用scatter()绘制一系列点

要绘制一系列的点,可向scatter()传递两个分别包含x值和y值的列表

import matplotlib.pyplot as plt
x_values = [1, 2, 3, 4, 5]
y_values = [1, 4, 9, 16, 25]
plt.scatter(x_values, y_values, s=100)
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value", fontsize=14)
plt.ylabel("Square of Value", fontsize=14)
plt.tick_params(axis='both', which='major',labelsize=14)
plt.show()

5.自动计算数据

import matplotlib.pyplot as plt
x_values = list(range(1, 1001))
y_values = [x**2 for x in x_values]
plt.scatter(x_values, y_values, s=3)
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value", fontsize=14)
plt.ylabel("Square of Value", fontsize=14)
plt.tick_params(axis='both', which='major', labelsize=14)
plt.axis([0, 1100, 0, 1100000])#设置每个坐标轴的取值范围
plt.show()

6.删除数据点的轮廓

matplotlib允许我们给散点图中的各个点指定颜色。默认为蓝色点和黑色轮廓,在散点图数据点不多时效果很好。但绘制很多点时,黑色轮廓可能会粘在一起。要删除数据点的轮廓,可在调用scatter()时传递实参edgecolor='none':

plt.scatter(x_values,y_values,edgecolor='none',s=3)

7.自定义颜色

要修改数据点的颜色,可向scatter()传递参数c,并将其设置为要使用的颜色名称

plt.scatter(x_values,y_values,c='red',edgecolor='none',s=3)

同时,我们还可以使用RGB颜色模式自定义颜色。要指定自定义颜色,可传递参数c,并将其设置为一个元组,其中包含三个0~1之间的小数值,他们分别表示红色,绿色和蓝色分量。例如:

plt.scatter(x_values,y_values,c=(0,0,0.8),edgecolor='none',s=3)

值越接近0,指定的颜色越深,值越接近1,指定的颜色越浅

8.使用颜色映射

颜色映射是一系列颜色,他们从起始颜色渐变到结束颜色。在可视化,颜色映射用于突出数据的规律,例如,我们可能用较钱的颜色来显示较大的值。

模块pyplot内置了一组颜色的映射。要使用这些颜色映射,你需要告诉pyplot该如何设置数据集中每个点的颜色。下面演示了如何根据每个点的y值来设置其颜色:

import matplotlib.pyplot as plt
x_values = list(range(1, 1001))
y_values = [x**2 for x in x_values]
plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,edgecolor='none',s=3)
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value", fontsize=14)
plt.ylabel("Square of Value", fontsize=14)
plt.tick_params(axis='both', which='major', labelsize=14)
plt.axis([0, 1100, 0, 1100000])#设置每个坐标轴的取值范围
plt.show()

9.画一个直方图

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
matplotlib.rcParams['font.sans-serif']=['SimHei'] #用黑体表示中文
matplotlib.rcParams['axes.unicode_minus']=False #正常显示负号
data = np.random.randn(10000)
# bins:直方图长条形数目,可选项,默认为10
# normed:是否将得到的直方图向量规一化,可选项,默认为0,代表不规一化,显示频数。normed=1,表示规一化,显示频率
# facecolor:长条形的颜色
# edgecolor:长条形边框的颜色
# alpha:透明度
plt.hist(data, bins=40, facecolor='blue', edgecolor='black', alpha=0.7)
plt.xlabel("区间", fontsize=14)
plt.ylabel("频数/频率",fontsize=14)
plt.title("频数/频率直方图",fontsize=24)
plt.show()

10.条形图

import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['axes.unicode_minus'] = False
plt1 = plt.subplot(2, 2, 1)
plt2 = plt.subplot(2, 2, 2)
plt3 = plt.subplot(2, 2, 3)
plt4 = plt.subplot(2, 2, 4)
# left:长条形中点横坐标
# height:长条形高度
# width:长条形的宽度,默认值0.8
label_list = ['2011', '2012', '2013', '2014']
num_list1 = [10, 15, 20, 25]
num_list2 = [5, 15, 25, 35]
x = list(range(len(label_list)))

plt1.barh(label_list, num_list1, fc='purple', ec='black')

plt2.bar(label_list, num_list2, color='rgyb', width=0.4, ec='black')
# 画堆叠柱状图
plt3.bar(label_list, num_list1, fc='b', label='boy', width=0.4)
plt3.bar(label_list, num_list2, bottom=num_list1, label='girl', fc='r', width=0.4)
plt3.legend()
# 画并列柱状图
plt4.bar(x, num_list1, width=0.4, fc='g', label='boy')
for i in range(len(x)):
    x[i] = x[i] + 0.4
plt4.bar(x, num_list2, width=0.4, label='girl', tick_label=label_list, fc='y')
plt4.legend()

plt.show()

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据可视化(学会用matplotlib绘图) 的相关文章

随机推荐

  • 前端向后台传值的方式及相关注解

    文章目录 传参方式 QueryString传参 访问路径传参 form表单传参 ajax方式进行JSON传参 常用注解 RequestBody RequestParam 为前端提供接口 需要对传参方式有所熟悉 以下有几种常用的传参方式和常见
  • 连接vc显示服务器无法解释客户端请,vc服务器和客户端配置

    vc服务器和客户端配置 内容精选 换一换 当出现以下问题时 可以参考本章节排查解决 可以直接访问后端业务 但是无法通过负载均衡访问后端业务 通过私网IP可以访问负载均衡 但是公网IP无法访问负载均衡 后端服务器健康检查异常 客户端通过负载均
  • NDK与Cygwin配置

    1 Android 开发环境搭建 Android开发环境搭建不是重点 相信看此文章的很多人都已经搭建成功 这里随便概述性的说说 下载 JDK 下载 Eclipse 下载 Android SDK 启动Eclipse 安装 ADT 2 下载安装
  • java中optional 常用用法

    Java中的Optional是一个容器对象 它可以包含一个非空值 也可以为空 它的主要作用是在编写代码时避免空指针异常 java 8 中Optional的完整用法如下 1 创建Optional对象 可以通过of 方法创建一个包含非空值的Op
  • SpringCloud Ribbon(负载均衡)

    1 SpringCloud Ribbon 是一个客户端的负载均衡组件 主要提供负载均衡算法 2 Ribbon中负载均衡算法实现 AbstractLoadBalancerRule 负载均衡策略的抽象类 在该抽象类中定义了负载均衡器ILoadB
  • LDO的dropout voltage

    目录 从一个设计错误谈起 Dropout压降 从芯片内部电路结构理解dropout压降 MOS管 gt 低dropout压降的LDO 进一步降低dropout压降的方法 在系统设计中 电源管理是不可或缺的 而LDO 线性稳压器 是电源管理器
  • Vue生命周期详解

    Vue的生命周期 Vue实例有一个完整的生命周期 也就是从开始创建初女台化数据 编译模板 挂载DOM 渲染一更新一渲染 卸载等一系列过程 我们称这是Vue的生命周期 在Vue官网有这样一张图 生命周期 vue实例从创建到销毁的过程 声明周期
  • android卡刷包自制rom之添加删除,添加/删除ROM内置APP的教程

    ROM闪存软件包是Android闪存中必不可少的东西删除刷机包自带软件 但是大多数ROM闪存软件包都与许多应用程序集成在一起 其中许多不是您想要的 也没有您想要的应用程序 使用Mushroom ROM Assistant快速删除和添加APK
  • 偏最小二乘法(PLS)计算流程

    根据相关文献 将PLS的计算流程整理如下 供大家参考 1 输入样本矩阵X 输出值矩阵Y分别对X Y进行中心化处理 归一化方差 得到矩阵 E0和F 2 令n 0 3 计算矩阵En FF En 计算En FF En的最大特征根对应的单位特征向量
  • AndroidStudio会在@NonNull后面自动添加@org.jetbrains.annotations.Nullable

    今天呀在AndroidStudio 4 1中一直有个问题困扰着我 那就是AndroidStudio会在 NonNull后面自动添加 org jetbrains annotations Nullable 这 自动添加就算了还报错 每次都要删除
  • 区块链搬砖实战

    前言 相信不少币友在数字货币交易的时候都发现了 不同的交易平台不同的数字货币都存在一定的差价 这时候就引出了 搬砖的概念 搬砖的概念 由于各种因素导致各平台的虚拟货币的价格有价格差 产生了套利空间 运用平台之间价格差来谋求利益的行为俗称 搬
  • vs code终端修改字体大小以及其它样式

    1 在文件 gt 首选项 gt 设置 2 用户 gt 工作台 gt 找到settings json点击进入 3 在 settings json文件里添加需要修改的样式 terminal integrated cursorBlinking t
  • 软件资源下载链接

    1 Dreamweaver DW cs5 链接 https pan baidu com s 1kVqqpqJ 密码 9hc4 DW cc2014 链接 https pan baidu com s 1skQvBCL 密码 3kd8 DW cc
  • 数据库系统——复习总结

    数据库系统
  • cvCanny检测边缘,连通重要的非连通区域

    这个函数就是使用canny边缘检测算子检测图象的边缘 在opencv下使用这个函数之前最好将图象平滑处理一下 要不然可能检测不到边缘 检测到的边缘 这些边缘大多还不是连通区域 可以通过3 3的模板将一些相近的边缘连接起来 也可以用cvDil
  • Tesseract-OCR的配置和应用

    1 百度搜索Tesseract OCR下载 Tesseract orc setup 3 02 02 exe 要记得自己的安装目录 博主的安装路径为 C Program Files x86 Tesseract OCR 等会配置环境变量要用 如
  • C# Selenium chromedriver 隐藏Devtool控制台窗口

    爬取网页信息时 使用了C Selenium WebDriver dll chromedriver Chrome 除了chromedriver控制台窗口 可以通过CDS HideCommandPromptWindow true隐藏 还有出现一
  • Health Kit基于数据提供专业方案,改善用户睡眠质量

    什么是CBT I 中国社科院等机构今年发布的 中国睡眠研究报告2023 内容显示 2022年 受访者的每晚平均睡眠时长为7 40小时 近半数受访者的每晚平均睡眠时长不足8小时 47 55 16 79 的受访者的每晚平均睡眠时长不足7小时 这
  • C++异常处理机制(超级详细)

    目录 0 异常处理机制简介 1 传统错误处理机制 通过函数返回值 2 异常处理机制语法 3 异常接口声明 4 异常类型和声明周期 4 1throw基本类型异常 int float char 4 2throw字符串类型异常 4 3throw类
  • 数据可视化(学会用matplotlib绘图)

    1 绘制简单的折线图 import matplotlib pyplot as plt squres 1 4 9 16 25 plt plot squres 把列表传给plot 这个函数尝试根据这些数字绘制出有意义的图形 plt show 打