人生苦短,我用 Python

前文传送门:

小白学 Python 数据分析(1):数据分析基础

小白学 Python 数据分析(2):Pandas (一)概述

小白学 Python 数据分析(3):Pandas (二)数据结构 Series

小白学 Python 数据分析(4):Pandas (三)数据结构 DataFrame

小白学 Python 数据分析(5):Pandas (四)基础操作(1)查看数据

小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择

小白学 Python 数据分析(7):Pandas (六)数据导入

小白学 Python 数据分析(8):Pandas (七)数据预处理

小白学 Python 数据分析(9):Pandas (八)数据预处理(2)

小白学 Python 数据分析(10):Pandas (九)数据运算

小白学 Python 数据分析(11):Pandas (十)数据分组

小白学 Python 数据分析(12):Pandas (十一)数据透视表(pivot_table)

小白学 Python 数据分析(13):Pandas (十二)数据表拼接

小白学 Python 数据分析(14):Pandas (十三)数据导出

小白学 Python 数据分析(15):数据可视化概述

小白学 Python 数据分析(16):Matplotlib(一)坐标系

坐标轴标题设置

各位同学好,我又来了,本文给大家带来的是有关 Matplotlib 的一些基础操作。

在前一篇文章中,我们介绍了如何使用 Matplotlib 绘制坐标系,本文我们接着介绍 Matplotlib 。

先看一个简单的示例:

import matplotlib.pyplot as plt

x_data = ['2011','2012','2013','2014','2015','2016','2017']
y_data = [58000,60200,63000,71000,84000,90500,107000] plt.xlabel('年份')
plt.ylabel('销量') plt.plot(x_data, y_data) plt.show()

结果如下:

好像哪里不太对的样子,横轴和数轴的标题没有显示出来,看一下程序运行,没有报错,但是报出来一个警告:

RuntimeWarning: Glyph 24180 missing from current font.

这个警告的含义是 plt 画图是找不到字体,那么这里我们手动设置一下字体:

plt.rcParams['font.sans-serif']=['SimHei']

完整的样例代码如下:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']

x_data = ['2011','2012','2013','2014','2015','2016','2017']
y_data = [58000,60200,63000,71000,84000,90500,107000] plt.xlabel('年份')
plt.ylabel('销量') plt.plot(x_data, y_data) plt.show()

结果如下:

这下显示正常了。

我们还可以通过参数 labelpad 设置标题到坐标轴的距离,这里为了演示效果设置的距离稍微大了点:

plt.xlabel('年份', labelpad=50)
plt.ylabel('销量', labelpad=50)

结果如下:

我们还可以通过参数对文本的相关属性进行设置,下面看下一些常用的设置参数:

plt.xlabel('年份', labelpad=50, fontsize='xx-large', fontweight='bold', rotation='vertical', backgroundcolor='red')
plt.ylabel('销量', labelpad=50)

先看结果:

xlabel 中常用的一些参数:

  • fontsize : 设置字体大小,默认12,可选参数 ['xx-small', 'x-small', 'small', 'medium', 'large','x-large', 'xx-large']
  • fontweight : 设置字体粗细,可选参数 ['light', 'normal', 'medium', 'semibold', 'bold', 'heavy', 'black']
  • fontstyle : 设置字体类型,可选参数[ 'normal' | 'italic' | 'oblique' ],italic斜体,oblique倾斜
  • verticalalignment : 设置水平对齐方式 ,可选参数 : 'center' , 'top' , 'bottom' ,'baseline'
  • horizontalalignment : 设置垂直对齐方式,可选参数:left,right,center
  • rotation : (旋转角度)可选参数为:vertical,horizontal 也可以为数字
  • alpha : 透明度,参数值0至1之间
  • backgroundcolor : 标题背景颜色
  • bbox : 给标题增加外框 ,常用参数如下:
    • boxstyle 方框外形
    • facecolor (简写fc)背景颜色
    • edgecolor (简写ec)边框线条颜色
    • edgewidth 边框线条大小

刻度设置

默认坐标轴是显示 x y 的值,但是也可以自定义显示不同的刻度,这里需要使用到的函数为 xticksyticks 两个函数:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']

x_data = [2011,2012,2013,2014,2015,2016,2017]
y_data = [58000,60200,63000,71000,84000,90500,107000] plt.xticks(x_data, ['2011年','2012年','2013年','2014年','2015年','2016年','2017年'])
plt.yticks(y_data) plt.plot(x_data, y_data) plt.show()

结果如下:

有些时候,由于数据脱敏的需要,我们不要显示刻度,还可以这么写:

plt.xticks(x_data, [])
plt.yticks(y_data, [])

这样展现出来的图形如下:

实际上,我们还有更狠的操作,直接关闭坐标轴:

plt.axis("off")

结果如下:

范围设置

我们还可以对坐标轴的范围进行设置,如下:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']

x_data = [2011,2012,2013,2014,2015,2016,2017]
y_data = [58000,60200,63000,71000,84000,90500,107000] plt.xlim(2011, 2020)
plt.ylim(50000, 90000) plt.plot(x_data, y_data) plt.show()

结果如下:

这里设置在 Y 轴上最大值为 90000 ,那么 2016 和 2017 对应的数据将会无法显示,实际我们从得出的结果图上也能看出这一点。

网格线设置

网格线默认是关闭的,我们可以通过函数 grid 修改参数 b 来开启网格线,如下:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']

x_data = [2011,2012,2013,2014,2015,2016,2017]
y_data = [58000,60200,63000,71000,84000,90500,107000] plt.plot(x_data, y_data) plt.grid(b=True) plt.show()

结果如下:

我们不仅可开启网格线,还可以通过参数 axis 来控制是开启哪个轴的网格线:

# 开启 x 轴网格线
plt.grid(b=True, axis='x')
# 开启 y 轴网格线
plt.grid(b=True, axis='y')

图例设置

图例能对图表起到注释的作用,我们可以通过参数 label 对该图表的图例进行设置,示例如下:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']

x_data = [2011,2012,2013,2014,2015,2016,2017]
y_data = [58000,60200,63000,71000,84000,90500,107000] plt.plot(x_data, y_data, label = '折线图')
plt.bar(x_data, y_data, label = '柱状图') plt.legend() plt.show()

结果如下:

图表标题设置

图表标题是用来概括整张图表现的内容的,我们可以通过如下方式设置一张图的标题:

plt.title(label='xxx 公司 xxx 产品销量')

结果如下:

本文的内容就到这里了,下一篇我们介绍 Matplotlib 的常用图表的示例,本文的示例代码写的有点乱,就不贴出来了,当然,如果经常看小编写的文章的估计都找得到。

参考

https://blog.csdn.net/The_Time_Runner/article/details/89927708

小白学 Python 数据分析(17):Matplotlib(二)基础操作的更多相关文章

  1. 小白学 Python(17):基础数据类型(函数)(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  2. 小白学 Python(18):基础文件操作

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  3. 小白学 Python(19):基础异常处理

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  4. 小白学 Python 数据分析(18):Matplotlib(三)常用图表(上)

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  5. 小白学 Python 数据分析(19):Matplotlib(四)常用图表(下)

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  6. 小白学 Python 数据分析(16):Matplotlib(一)坐标系

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  7. 小白学 Python 数据分析(5):Pandas (四)基础操作(1)查看数据

    在家为国家做贡献太无聊,不如跟我一起学点 Python 人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Panda ...

  8. 小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  9. 小白学 Python 数据分析(13):Pandas (十二)数据表拼接

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

随机推荐

  1. Tomcat源码解析-启动过程分析之主干流程

    Tomcat启动入口就在脚本startup.sh中,具体脚本可以看tomcat的源码,这个启动脚本主要用来判断环境,找到catalina.sh脚本路径,将启动参数传递给catalina.sh执行.ca ...

  2. [rope大法好] STL里面的可持久化平衡树--rope

    简单用法: #include <ext/rope> using namespace __gnu_cxx; int a[1000]; rope<int> x; rope<i ...

  3. EROS安装(windows)

    版本查看 基础环境安装 npm i eros-cli -g

  4. Spring5源码分析(1)设计思想与结构

    1 源码地址(带有中文注解)git@github.com:yakax/spring-framework-5.0.2.RELEASE--.git Spring 的设计初衷其实就是为了简化我们的开发 基于 ...

  5. openCryptoki安装

    什么是OpenCryptoki OpenCryptoki提供Linux下的PKCS#11库和工具,支持包括TPM和IBM加密硬件以及软件令牌. 目前(2019/05/06)最新release版为3.1 ...

  6. 【译文】使用webpack提高网页性能优化

    这篇文章原文来自https://developers.google.com/web/fundamentals/performance/webpack/. 说是译文其实更像是笔者做的笔记,如有错误之处请 ...

  7. STM32 一个初始化EXTI的例子

    23 May 2017 » Hardware 注:STM32F407VGT6 with STM32F4 DSP and standard peripherals library v1.8.0 外部中断 ...

  8. 设计模式详解及PHP实现:代理模式

    [目录] 代理模式(Proxy pattern) 代理模式是一种结构型模式,它可以为其他对象提供一种代理以控制对这个对象的访问. 主要角色 抽象主题角色(Subject):它的作用是统一接口.此角色定 ...

  9. 下一代网际协议IPv6

    下一代网际协议IPv6 一.解决 IP 地址耗尽的措施 从计算机本身发展以及从因特网规模和网络传输速率来看,现在 IPv4 已很不适用. 最主要的问题就是 32 位的 IP 地址不够用. 在 2019 ...

  10. 达拉草201771010105《面向对象程序设计(java)》第十五周学习总结

    达拉草201771010105<面向对象程序设计(java)>第十四周学习总结 第一部分:理论知识 JAR文件: 1.Java程序的打包:程序编译完成后,程序员 将.class文件压缩打包 ...