点击上"蓝字"关注我们

本文环境说明熊猫本次用的是 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'] = False

Matplotlib 作图组件

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

使用 Matplotlib 的两种姿势使用 Matplotlib 一般有两种方法,也就是常说的两种接口。

  • 面向对象接口:创建并显示图形和轴,并在其基础上调用方法。
  • pyplot 接口:自动管理图形和轴,使用 pyplot 方法函数进行绘图。

不管是什么样的图,两种方式都是可以实现的。没有过多的区别,可能只是书写风格上有区别。下面就给大家展示一下,用两种不同风格的代码做出同样一张图。大家可以感受一下。目标输出图

数据准备首先我们看到目标输出的图片是一个画布上分为四个模块,分别是直方图、散点图、折线图、柱状图。下面这部分代码,分别是为这 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)

写在最后参考完这两种书写方法,大家可以找到自己更喜欢的风格。最好是按照一种风格书写,不要写串了风格~毕竟喜欢可视化的人不但追求作图好看,代码也要好看。祝大家也能写出如诗般的代码。下课!

扫码关注

长按扫码

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

  1. matplotlib柱状图上方显示数据_可视化技能之Matplotlib(上)|可视化系列01

         作者:蜇虫适航      来源:蜇虫适航 Matplotlib可以说是Python最声名远扬的可视化库了,也是Python数据分析库的"三驾马车"之一.Matplotli ...

  2. matplotlib柱状图上方显示数据_Python数据分析matplotlib可视化之绘图!

    Matplotlib是一个基于python的2D画图库,能够用python脚本方便的画出折线图,直方图,功率谱图,散点图等常用图表,而且语法简单. Python中通过matplotlib模块的pypl ...

  3. matplotlib柱状图上方显示数据_Python数据可视化之matplotlib

    数据可视化能让人们更直观的传递数据所要表达的信息.Python 中有两个专用于可视化的库,matplotlib 和 seaborn ,本文将介绍matplotlib. Matplotlib:基于Pyt ...

  4. matplotlib柱状图上方显示数据_Python基础数据可视化

    数据可视化是数据分析中最重要的工作之一.在数据探索阶段,可视化有助于我们了解数据的基本分布与简单规律:在数据分析结果阶段,可视化呈现的结果更加直观.醒目.按照数据之间的关系,我们可以把可视化视图分为四 ...

  5. matplotlib 绘制柱状图且上方显示数据

    目的 在绘制柱状图时,有时我们需要在柱体最上方显示数据 代码部分 基于python3.6 Jupyter Nootbook import matplotlib.pyplot as plt plt.rc ...

  6. ECharts 柱状图上显示数据,并自定义图标

    先看效果 1.柱状图上显示数据,使用的是series[0].label.formatter series: [{name:'近一周每日',type: 'bar',barGap: '0',label: ...

  7. mysql数据存储方式_数据存储在mysql的两种方式

    数据存储在mysql的两种方式 发布时间:2020-05-12 16:16:25 来源:亿速云 阅读:250 作者:三月 下文主要给大家带来数据存储在mysql的两种方式,希望这些内容能够带给大家实际 ...

  8. java实参将数据传递给形参的两种形式

    java实参将数据传递给形参的两种形式 /*** java实参将数据传递给形参的两种形式* 1,按值传递* 2,按引用传递* * 当参数是基本数据类型时,数据不占用堆内存,按值传递* 当参数是引用类型 ...

  9. phpcms选择文件无法加载插件怎么办_win7浏览器显示无法加载插件的两种修复方法...

    深度技术win7系统在使用浏览器观看视频,浏览网页的时候,显示无法加载插件,导致浏览器没办法正常使用,给操作带来一定的影响,怎么办?为什么浏览器会显示无法加载插件?针对此疑问,接下去小编给大家分享wi ...

最新文章

  1. 7-10 逆波兰表达式求值 (20 分)(c语言)(数据结构)
  2. python地图散点图_在地图上叠加散点图(img)
  3. Impala-shell 启动异常 - Python版本为3.x 启动脚本为2.x
  4. 数据装载指定一张表或者多张表直接装载到目标表_10
  5. 水星无线网dns服务器是什么,水星路由dns设置教程,-1
  6. OpenGL:编译glfw并配置
  7. 基于嵌入式系统linux无线传感器网络软件平台,基于嵌入式网络的无线传感器网络平台硬件和软件实现...
  8. 如何解决微图不能在虚拟机上运行的问题
  9. BMI体重指数计算器
  10. 一种绝对提高开发水平的方法(转)
  11. TreeSet引发的OSGI服务代理创建异常
  12. asus华硕 开启安全启动
  13. Gram矩阵+Gram矩阵和协方差矩阵的关系
  14. 20个专业H5(HTML5)动画工具推荐
  15. Android画板,橡皮擦为黑色痕迹的问题
  16. 啊哈C——学习2.4一起来找茬
  17. Xcode安装特定版本系统的模拟器(不支持断点下载所以总是下载失败)
  18. 人间四月天,有一本好书要送给你
  19. 牌照发布后的第20天,上海MWC,中国5G,GO!
  20. 国外投资哪些域名比较受欢迎?

热门文章

  1. 如何在Smartphone模拟器上测试短信和电话
  2. 团队作业(二):项目选题
  3. 第二周作业求最大值和最小下标
  4. MySQL数据库“局部”乱码
  5. CentOS Linux安装telnet服务
  6. zoj 3629 Treasure Hunt IV
  7. .NET4进行COM互操作--导出数据到Excel
  8. luogu P3178 [HAOI2015]树上操作
  9. TensorFlow中数据读取—如何载入样本
  10. Centos7下搭建LAMP平台环境