热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

matplotlib柱状图上方显示数据_使用matplotlib的两种姿势

点击上蓝字关注我们本文环境说明熊猫本次用的是Anaconda的jupyternotebook编写的本文代码。今天用到的库都是已经集成好的,无须另行安装。每个库的版
df555c635e374e0e413eea7a21b7c426.png

点击上"蓝字"关注我们

8b61845f157e9c79796e7ec69ba46e3c.png本文环境说明熊猫本次用的是 Anaconda 的 jupyter notebook 编写的本文代码。今天用到的库都是已经集成好的,无须另行安装。每个库的版本号我列在下方了。

Python :3.7.4

pandas : 1.1.4

numpy : 1.19.4

matplotlib : 3.3.2

可以在终端中运行如下代码查询自己环境中各个库的版本,如果你的版本比较低,可以运行升级代码对相应的库进行升级。

pip list #查看各个库的版本号pip install --upgrade 库名 #升级对应库版本先 import 一波操作本文整体都在这基础上编写代码,如果你正一边看我的文章,一边在自己的电脑上实现代码,可以直接复制下面的代码先运行一波。

import pandas as pdimport numpy as npimport matplotlib as mplimport matplotlib.pyplot as plt%matplotlib# 让图像可以正常显示中文plt.rcParams['font.family']=['SimHei']plt.rcParams['axes.unicode_minus'] = FalseMatplotlib 作图组件

Matplotlib 擅长制作 2D 图表,每张图表的元素有很多,每个元素都有对应的方法做编辑修改。下图来自 Matplotlib 官网。

1067233640aa302be892a9d2687a7eab.png

使用 Matplotlib 的两种姿势使用 Matplotlib 一般有两种方法,也就是常说的两种接口。
  • 面向对象接口:创建并显示图形和轴,并在其基础上调用方法。
  • pyplot 接口:自动管理图形和轴,使用 pyplot 方法函数进行绘图。
不管是什么样的图,两种方式都是可以实现的。没有过多的区别,可能只是书写风格上有区别。下面就给大家展示一下,用两种不同风格的代码做出同样一张图。大家可以感受一下。目标输出图

39240f48b54b01e8cf7ba2c368d81a45.png

数据准备首先我们看到目标输出的图片是一个画布上分为四个模块,分别是直方图、散点图、折线图、柱状图。下面这部分代码,分别是为这 4 张图准备的数据。可以直接复制到你们的编译器中,运行看看每个变量的数据都是什么样的,这里就不做展示了。(PS:由于有随机性函数,所以每个人运行出来的结果不一样,是正常的哦~)

# 折线图数据,我们使用一个累加数据,data1 = np.random.randn(50).cumsum()# 直方图数据,直方图只需要一组数据即可生成data2 = np.random.randn(100)# 散点图数据,散点图中每个点都需要横纵坐标来确定位置,所以需要两组数据;data3_1 = np.arange(30)data3_2 = data3_1+np.random.randn(30)# 柱状图数据,data4_1中的数据作为分类型数据作为横坐标,用data4_2来确定每个柱子的高低。data4_1 = ['数','据','山','谷','十','万','加']data4_2 = [10,15,20,30,17,11,15]风格实现良心注释,代码其实很简单。每个第一次用到的参数都在注释中标明了。

# 创建一个画布# figsize表示画布横纵尺寸# dpi表示清晰度(数值越大越清晰)fig = plt.figure(figsize=(15,8),dpi=120)# 在画布上创建 4 个子图# fig.add_subplot(横向分布数,纵向分布数,子图索引)ax1 = fig.add_subplot(2,2,1) ax2 = fig.add_subplot(2,2,2)ax3 = fig.add_subplot(2,2,3)ax4 = fig.add_subplot(2,2,4)# 用 data1 数据在第一个子图上创建折线图# color 折线颜色# linestyle 折线样式,这里使用了虚线# marker 折点样式# markersize 折点大小ax1.plot(data1,color='k',linestyle='--',marker='o',markersize=3)# 用 data2 数据在第二个子图上创建直方图# bin 直方图柱子个数# alpha 图像透明度(0为完全透明,1为完全不透明)ax2.hist(data2,bins=20,color='k',alpha=0.7)# 用 data3_1 和 data3_2 在第三个子图上创建散点图ax3.scatter(data3_1,data3_2,color='k')# 用 data4_1 和 data4_2 在第三个子图上创建柱状图ax4.bar(data4_1,data4_2,color='k',alpha=0.7)# 给每个小图像添加标题ax1.set_title("折线图")ax2.set_title("直方图")ax3.set_title("散点图")ax4.set_title("柱状图")pyplot 风格实现

plt.figure(figsize=(15,8),dpi=120)# 编辑第一个子图plt.subplot(221)plt.title("折线图")plt.plot(data1,color='k',linestyle='--',marker='o',markersize=3)# 编辑第二个子图plt.subplot(222)plt.title("直方图")plt.hist(data2,bins=20,color='k',alpha=0.7)# 编辑第三个子图plt.subplot(223)plt.title("散点图")plt.scatter(data3_1,data3_2,color='k')# 编辑第四个子图plt.subplot(224)plt.title("柱状图")plt.bar(data4_1,data4_2,color='k',alpha=0.7)写在最后参考完这两种书写方法,大家可以找到自己更喜欢的风格。最好是按照一种风格书写,不要写串了风格~毕竟喜欢可视化的人不但追求作图好看,代码也要好看。祝大家也能写出如诗般的代码。下课!

扫码关注

c5bc054546f122241986dddc8d16e3f2.png

584fa5eacc599d3d0ed1c1bdcf4f138d.gif

 长按扫码

cdf34892a216cf3d7ebc06cb35f1f4de.gif



推荐阅读
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • python中安装并使用redis相关的知识
    本文介绍了在python中安装并使用redis的相关知识,包括redis的数据缓存系统和支持的数据类型,以及在pycharm中安装redis模块和常用的字符串操作。 ... [详细]
  • Python教学练习二Python1-12练习二一、判断季节用户输入月份,判断这个月是哪个季节?3,4,5月----春 ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • 本文总结了使用不同方式生成 Dataframe 的方法,包括通过CSV文件、Excel文件、python dictionary、List of tuples和List of dictionary。同时介绍了一些注意事项,如使用绝对路径引入文件和安装xlrd包来读取Excel文件。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
author-avatar
妩媚别说你LOVE我_383
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有