python数据可视化的那些操作你了解吗

目录
  • 0. 前言
  • 1. matplotlib中figure、subplot和plot等什么关系
  • 2. 画图的细节修改
    • 2.1 plot画图形式修改
    • 2.2 添加图例、标签等
    • 2.3 在图上画注解和矩形
  • 3. 图形保存
  • 总结

0. 前言

数据处理过程中,可视化可以更直观得感受数据,因此打算结合自己的一些实践经理,以效果为准写这篇博客。内容应该会不断扩充。

1. matplotlib中figure、subplot和plot等什么关系

记住这几个关系可以结合实际。假设你去外面写生要带哪些工具呢,包括画板、画纸还有画笔,那么就可以一一对应了。

函数 工具
figure 画板
subplot、add_subplot 画纸
plot、hist、scatter 画笔

那么再往深处想,画纸贴在画板上,画纸可以裁剪成多块布局在画板上,而画笔只能画在纸上,可能这样讲有点笼统,下面一个代码配合注释就可以清晰明白啦。(感觉需要记住以下代码)

代码

import matplotlib.pyplot as plt
import numpy as np
# 拿起画板
fig = plt.figure()
# 在画板上贴上画纸
ax1 = fig.add_subplot(221)
ax2 = fig.add_subplot(222)
ax3 = fig.add_subplot(223)
# 一步完成(直接拿起画板和画纸)-----------------
# ax1 = plt.subplot(221)
# ax2 = plt.subplot(222)
# ax3 = plt.subplot(223)
# ----------------------------------------
# 在画纸上作图
ax1.hist(np.random.randn(100), bins=20, color='k', alpha=0.3)
ax2.scatter(np.arange(30), np.arange(30) + 3 * np.random.randn(30))
ax3.plot(np.random.randn(50).cumsum(), 'k--')
plt.show()

运行结果

函数解析

代码行 作用 参考链接
ax1.hist(np.random.randn(100), bins=20, color=‘k’, alpha=0.3) 绘制直方图 python用hist参数解读

2. 画图的细节修改

依次完成以下的画图效果:

1.一个正弦函数和一个随机数值的曲线,正弦函数直线,随机数值曲线虚线以及其他样式修改;

2.图例、标签等修改;

3.加上标注,标注范围内用红色矩形表示。

2.1 plot画图形式修改

代码

import matplotlib.pyplot as plt
import numpy as np
# 拿起画板
fig = plt.figure()
# 贴上画纸
ax1 = fig.add_subplot(111)
# 数据准备
x_sin = np.arange(0, 6, 0.001)  # [0, 6]
y_sin = np.sin(x_sin)
data_random = np.zeros(7)  # 生成[-1,1]的7个随机数
for i in range(0, 6):
    data_random[i] = np.random.uniform(-1, 1)
# 画图
ax1.plot(x_sin, y_sin, linestyle='-', color='g', linewidth=3)
ax1.plot(data_random, linestyle='dashed', color='b', marker='o')
plt.show()

运行结果

2.2 添加图例、标签等

代码

import matplotlib.pyplot as plt
import numpy as np
# 拿起画板
fig = plt.figure()
# 贴上画纸
ax1 = fig.add_subplot(111)
# 数据准备
x_sin = np.arange(0, 6, 0.001)  # [0, 6]
y_sin = np.sin(x_sin)
data_random = np.zeros(7)  # 生成[-1,1]的7个随机数
for i in range(0, 6):
    data_random[i] = np.random.uniform(-1, 1)
# 画图
ax1.plot(x_sin, y_sin, linestyle='-', color='g', linewidth=3, label='sin')
ax1.plot(data_random, linestyle='dashed', color='b', marker='o', label='random')
#-----------------添加部分------------------
# 添加标题
ax1.set_title('Title')
# 添加x轴名称
ax1.set_xlabel('x')
# 设置x轴坐标范围
ax1.set_xlim(xmin=0, xmax=6)
# 添加图例,在plot处加上label
ax1.legend(loc='best')
#----------------------------------------
plt.show()

运行结果

2.3 在图上画注解和矩形

代码

import matplotlib.pyplot as plt
import numpy as np
# 拿起画板
fig = plt.figure()
# 贴上画纸
ax1 = fig.add_subplot(111)
# 数据准备
x_sin = np.arange(0, 6, 0.001)  # [0, 6]
y_sin = np.sin(x_sin)
data_random = np.zeros(7)  # 生成[-1,1]的7个随机数
for i in range(0, 6):
    data_random[i] = np.random.uniform(-1, 1)
# 画图
ax1.plot(x_sin, y_sin, linestyle='-', color='g', linewidth=3, label='sin')
ax1.plot(data_random, linestyle='dashed', color='b', marker='o', label='random')
# 添加标题
ax1.set_title('Title')
# 添加x轴名称
ax1.set_xlabel('x')
# 设置x轴坐标范围
ax1.set_xlim(xmin=0, xmax=6)
# 添加图例
ax1.legend(loc='best')
#-----------------添加部分------------------
# 注解
ax1.annotate('max', xy=((np.pi) / 2, np.sin(np.pi/2)),
            xytext=((np.pi) / 2, np.sin(np.pi/2)-0.2),
            arrowprops=dict(facecolor='black', headwidth=4, width=2,headlength=4),
            horizontalalignment='left', verticalalignment='top')
ax1.annotate('min', xy=((np.pi) * 3 / 2, np.sin(np.pi * 3 / 2)),
            xytext=((np.pi) * 3 / 2, np.sin(np.pi * 3 / 2)+0.2),
            arrowprops=dict(facecolor='black', headwidth=4, width=2,headlength=4),
            horizontalalignment='left', verticalalignment='top')
# 矩形
print(ax1.axis())
rect = plt.Rectangle((np.pi / 2, ax1.axis()[2]), np.pi, ax1.axis()[3] - ax1.axis()[2], color='r', alpha=0.3)  # 起始坐标点,width, height
ax1.add_patch(rect)
#-----------------------------------------
plt.show()

运行结果

3. 图形保存

plt.savefig('figpath.png', dpi=400)

注意要放在show前面。

完整代码:

import matplotlib.pyplot as plt
import numpy as np
# 拿起画板
fig = plt.figure()
# 贴上画纸
ax1 = fig.add_subplot(221)
ax2 = fig.add_subplot(222)
ax3 = fig.add_subplot(223)
# 数据准备
x_sin = np.arange(0, 6, 0.001)  # [0, 6]
y_sin = np.sin(x_sin)
data_random = np.zeros(7)  # 生成[-1,1]的7个随机数
for i in range(0, 6):
    data_random[i] = np.random.uniform(-1, 1)
# 画图
ax1.plot(x_sin, y_sin, linestyle='-', color='g', linewidth=3, label='sin')
ax1.plot(data_random, linestyle='dashed', color='b', marker='o', label='random')
ax2.plot(x_sin, y_sin, linestyle='-', color='g', linewidth=3, label='sin')
ax2.plot(data_random, linestyle='dashed', color='b', marker='o', label='random')
ax3.plot(x_sin, y_sin, linestyle='-', color='g', linewidth=3, label='sin')
ax3.plot(data_random, linestyle='dashed', color='b', marker='o', label='random')
# # 添加标题
ax2.set_title('Title')
# 添加x轴名称
ax2.set_xlabel('x')
# 设置x轴坐标范围
ax2.set_xlim(xmin=0, xmax=6)
# 添加图例
ax2.legend(loc='best')
ax3.set_title('Title')
# 添加x轴名称
ax3.set_xlabel('x')
# 设置x轴坐标范围
ax3.set_xlim(xmin=0, xmax=6)
# 添加图例
ax3.legend(loc='best')
# 注解
ax3.annotate('max', xy=((np.pi) / 2, np.sin(np.pi/2)),
            xytext=((np.pi) / 2, np.sin(np.pi/2)-0.2),
            arrowprops=dict(facecolor='black', headwidth=4, width=2,headlength=4),
            horizontalalignment='left', verticalalignment='top')
ax3.annotate('min', xy=((np.pi) * 3 / 2, np.sin(np.pi * 3 / 2)),
            xytext=((np.pi) * 3 / 2, np.sin(np.pi * 3 / 2)+0.2),
            arrowprops=dict(facecolor='black', headwidth=4, width=2,headlength=4),
            horizontalalignment='left', verticalalignment='top')
# 矩形
# print(ax1.axis())
rect = plt.Rectangle((np.pi / 2, ax3.axis()[2]), np.pi, ax3.axis()[3] - ax3.axis()[2], color='r', alpha=0.3)  # 起始坐标点,width, height
ax3.add_patch(rect)
#-----------------添加部分------------------
plt.savefig('figpath.png', dpi=400)
#------------------------------------------
plt.show()

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Python 数据可视化实现5种炫酷的动态图

    本文将介绍 5 种基于 Plotly 的可视化方法,你会发现,原来可视化不仅可用直方图和箱形图,还能做得如此动态好看甚至可交互. 那么,Plotly 有哪些好处?Plotly 的整合能力很强:可与 Jupyter Notebook 一起使用,可嵌入网站,并且完整集成了 Dash——一种用于构建仪表盘和分析应用的出色工具. 启动 如果你还没安装 Plotly,只需在你的终端运行以下命令即可完成安装: pip install plotly 安装完成后,就开始使用吧! 动画 在研究这个或那个指标的演变

  • Python数据可视化之环形图

    目录 1.引言 2.方式一:饼图形式 3.方式二:条形图形式 1.引言 环形图(圆环)在功能上与饼图相同,整个环被分成不同的部分,用各个圆弧来表示每个数据所占的比例值.但其中心的空白可用于显示其他相关数据展示,相比于标准饼图提供了更丰富的数据信息输出. 在本文中,我们将介绍 Matplolib中绘制圆环图的两种方法.使用饼图和参数wedgeprops 的简单方法,以及使用极轴和水平条形图的复杂方法. 2.方式一:饼图形式 在 Matplotlib 中没有绘制圆环图的直接方法,但我们可以使用饼图中

  • Python抓取数据到可视化全流程的实现过程

    目录 1.爬取目标网站:业绩预告_数据中心_同花顺财经 2.获取序号.股票代码.等你所需要的信息 3.组成DataFrame 4.处理数据 1.爬取目标网站:业绩预告_数据中心_同花顺财经 (ps:headers不会设置的可以看这篇:Python 用requests.get获取网页内容为空 ’ ’) import pandas as pd import numpy as np import matplotlib.pyplot as plt import re import requests##把

  • 用Python可视化新冠疫情数据

    目录 前言 数据获取 数据可视化 python的特色 总结 前言 不知道大伙有没有看到过这一句话:“中国(疫苗研发)非常困难,因为在中国我们没有办法做第三期临床试验,因为没有病人了.”这句话是中国工程院院士钟南山在上海科技大学2021届毕业典礼上提出的.这句话在全网流传,被广大网友称之为“凡尔赛”发言. 今天让我们用数据来看看这句话是不是“凡尔赛”本赛.在开始之前我们先来说说今天要用到的python库吧! 1.数据获取部分 requests lxml json openpyxl 2.数据可视化部

  • Python爬取当网书籍数据并数据可视化展示

    目录 一.开发环境 二.模块使用 三.爬虫代码实现步骤 1. 导入所需模块 2. 发送请求, 用python代码模拟浏览器发送请求 3. 解析数据, 提取我们想要数据内容 4. 多页爬取 5. 保存数据, 保存csv表格里面 四.数据可视化 1.导入所需模块 2.导入数据 3.可视化 一.开发环境 Python 3.8 Pycharm 2021.2 专业版 二.模块使用 csv 模块 把爬取下来的数据保存表格里面的 内置模块requests >>> pip install request

  • python数据可视化的那些操作你了解吗

    目录 0. 前言 1. matplotlib中figure.subplot和plot等什么关系 2. 画图的细节修改 2.1 plot画图形式修改 2.2 添加图例.标签等 2.3 在图上画注解和矩形 3. 图形保存 总结 0. 前言 数据处理过程中,可视化可以更直观得感受数据,因此打算结合自己的一些实践经理,以效果为准写这篇博客.内容应该会不断扩充. 1. matplotlib中figure.subplot和plot等什么关系 记住这几个关系可以结合实际.假设你去外面写生要带哪些工具呢,包括画

  • python数据可视化JupyterLab实用扩展程序Mito

    目录 遇见 Mito 如何启动 Mito 数据透视表 Mito 令人印象深刻的功能 可视化数据 自动代码生成 Mito 安装 JupyterLab 是 Jupyter 主打的最新数据科学生产工具,某种意义上,它的出现是为了取代Jupyter Notebook. 它作为一种基于 web 的集成开发环境,你可以使用它编写notebook.操作终端.编辑markdown文本.打开交互模式.查看csv文件及图片等功能. JupyterLab 最棒的体验就是有丰富的扩展插件,我记得过去我们不得不依赖 nu

  • python数据可视化Seaborn绘制山脊图

    目录 1. 引言 2. 举个栗子 3.山脊图 4.扩展 5.结论 1. 引言 山脊图一般由垂直堆叠的折线图组成,这些折线图中的折线区域间彼此重叠,此外它们还共享相同的x轴. 山脊图经常以一种相对不常见且非常适合吸引大家注意力的紧凑图的形式表现.观察上图,我们给其起名叫Ridge plot是非常恰当的,因为上述图表看起来确实很像山的脊背.此外,上述图像还有另一个称呼叫做Joy Plots–这主要是因为Joy Division乐队在如下专辑封面上采用了这种可视化形式. 2. 举个栗子 在介绍完山脊图

  • Python 数据可视化超详细讲解折线图的实现

    绘制简单的折线图 在使用matplotlib绘制简单的折线图之前首先需要安装matplotlib,直接在pycharm终端pip install matplotlib即可 使用matplotlib绘制简单的折线图,再对其进行定制,实现数据的可视化操作 import matplotlib.pyplot as plt # 导入pyplot模块并设置别名为plt squares = [1, 4, 9, 16, 25] plt.plot(squares) plt.show() # 打开matplotib

  • Python数据可视化之matplotlib.pyplot绘图的基本参数详解

    目录 1.matplotlib简介 2.图形组成元素的函数用法 2.1. figure():背景颜色 2.2 xlim()和 ylim():设置 x,y 轴的数值显示范围 2.3 xlabel()和 ylabel():设置 x,y 轴的标签文本 2.4 grid():绘制刻度线的网格线 2.5 axhline():绘制平行于 x 轴额度水平参考线 2.6 axvspan():绘制垂直于 x 轴的参考区域 2.7 xticks(),yticks() 2.8 annotate():添加图形内容细节的

  • Python数据可视化详解

    目录 一.Matplotlib模块 1.绘制基本图表 1. 绘制柱形图 2. 绘制条形图 3. 绘制折线图 4. 绘制面积图 5. 绘制散点图 6. 绘制饼图和圆环图 2.图表的绘制和美化技巧 1. 在一张画布中绘制多个图表 2. 添加图表元素 3. 添加并设置网格线 4. 调整坐标轴的刻度范围 3.绘制高级图表 1. 绘制气泡图 2. 绘制组合图 3. 绘制直方图 4. 绘制雷达图 5. 绘制树状图 6. 绘制箱形图 7. 绘制玫瑰图 二.pyecharts模块 1.图表配置项 2.绘制漏斗图

  • 基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解

    Pyplot matplotlib.pyplot是一个命令型函数集合,它可以让我们像使用MATLAB一样使用matplotlib.pyplot中的每一个函数都会对画布图像作出相应的改变,如创建画布.在画布中创建一个绘图区.在绘图区上画几条线.给图像添加文字说明等.下面我们就通过实例代码来领略一下他的魅力. import matplotlib.pyplot as plt plt.plot([1,2,3,4]) plt.ylabel('some numbers') plt.show() 上图是我们通

  • Python数据可视化正态分布简单分析及实现代码

    Python说来简单也简单,但是也不简单,尤其是再跟高数结合起来的时候... 正态分布(Normaldistribution),也称"常态分布",又名高斯分布(Gaussiandistribution),最早由A.棣莫弗在求二项分布的渐近公式中得到.C.F.高斯在研究测量误差时从另一个角度导出了它.P.S.拉普拉斯和高斯研究了它的性质.是一个在数学.物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力. 正态曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,因此人

  • Python数据报表之Excel操作模块用法分析

    本文实例讲述了Python数据报表之Excel操作模块用法.分享给大家供大家参考,具体如下: 一 点睛 Excel是当今最流行的电子表格处理软件,支持丰富的计算函数及图表,在系统运营方面广泛用于运营数据报表,比如业务质量.资源利用.安全扫描等报表,同时也是应用系统常见的文件导出格式,以便数据使用人员做进一步加工处理.利用Python操作Excel的模块XlsxWriter(https://xlsxwriter.readthedocs.org),可以操作多个工作表的文字.数字.公式.图表等. 二

  • 详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)

    思维导图: 效果(语句版): 源码: # -*- coding: utf-8 -*- """ Created on Tue Mar 5 17:59:29 2019 @author: dell """ # ============================================================================= # 步骤: # 分割aaa = jieba.cut(str,cut_all=True/Fa

随机推荐