1.绘制函数“ y=x^2 ”与“ y=x ”图形

import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(figsize = (6, 6), dpi = 80)  # 创建画布。大小为 6 × 6 ,像素为 80
x = np.linspace(0, 1, 1000)
fig.add_subplot(2, 1, 1)  # 分为 2 × 1 图形阵,选择第 1 张图片绘图
plt.title('y=x^2 & y=x')  # 添加标题
plt.xlabel('x')  # 添加 x 轴名称‘ x ’
plt.ylabel('y')  # 添加 y 轴名称‘ y ’
plt.xlim((0, 1))  # 指定 x 轴范围( 0,1 )
plt.ylim((0, 1))  # 指定 y 轴范围( 0,1 )
plt.xticks([0, 0.3, 0.6, 1])  # 设置 x 轴刻度
plt.yticks([0, 0.5, 1])  # 设置 y 轴刻度
plt.plot(x, x ** 2)
plt.plot(x, x)
plt.legend(['y=x^2', 'y=x'])  # 添加图例
plt.savefig('./tmp/整体流程绘图.png')  # 保存图片
plt.show()

2.使用自编函数绘图并添加文本

通常情况下,在使用不同的数据重复的绘制同样的图形时,选择自编函数来进行绘图。有时候也会需要在图上添加文本标注。pyplot 模块中,使用 matplotlib.pyplot.text() 函数能够在任意位置添加文本,其使用基本语法如下。
matplotlib.pyplot.text (x, y, s, fontdict=None, withdash=False, **kwargs)

def my_plotter(ax, x, y, param_dict):'''ax 接收绘图对象x  接收 array 表示横轴数据 无默认值y  接收 array 表示纵轴数据 无默认值param_dict 接收 dict 表示传入参数 无默认值'''out = ax.plot(x, y, **param_dict)return out
# 以如下方式使用函数 :
x = [0, 1, 2, 3, 4, 5, 6, 7, 8]
y1 = x
y2 = np.sin(x)
fig, (ax1, ax2) = plt.subplots(1, 2)
my_plotter(ax1, x, y1, {'marker': 'x'})
my_plotter(ax2, x, y2, {'marker': 'o'})
ax1.text(x[4], y1[4], 'y=x')  # 在子图 1 添加‘ y=x ’
ax2.text(x[4], y2[4], 'y=sin(x)')  # 在子图 2 添加‘ y=sin ( x )’
plt.savefig('./tmp/ 自编函数绘图并添加文本.png')
plt.show()

3.使用 use 函数就可以直接设置预设风格

Matplotlib 中, pyplot 的一个子模块 style 里面定义了很多预设风格,方便进行风格转换。每一个预设的风格 style 都储存在一个以 .mplstyle 为后缀的 style 文件。我们可以在 stylelib 文件夹中查看。
通过 print(plt.style.available) 命令可以查看所有预设风格的名称,使用 use 函数就可以直接设置预设风格。
查看预设风格:

print('Matplotlib 中预设风格为: \n', plt.style.available)


使用预设风格:

x = np.linspace(0, 1, 1000)
plt.title('y=x^2 & y=x')  # 添加标题
plt.style.use('ggplot')  # 使用 ggplot 风格
plt.plot(x, x ** 2)
plt.plot(x, x)
plt.legend(['y=x^2', 'y=x'])  # 添加图例
plt.savefig('./tmp/plt风格.png')  # 保存图片
plt.show()


当然也能新建 mplstyle 文件来自定义绘图风格。在 stylelib 文件夹下创建好文件并按照规范配置属性同样能够使用 use 函数来调用该风格。

4.动态 rc 参数

1.线条常用的 rc 参数

管理线条属性的 rc 参数 lines 几乎可以控制线条的每一个细节, 线条常用的 rc 参数修改前后对比示例如下代码:

import matplotlib as mpl
pic = plt.figure(dpi = 80, figsize = (6, 6))
x = np.linspace(0, 1, 1000)
# 绘制第一张图(从左往右从上到下)
pic.add_subplot(2, 2, 1)  # 绘制 2 × 2 图形阵中第 1 张图片
plt.rcParams['lines.linestyle'] = '-.'  # 修改线条类型
plt.rcParams['lines.linewidth'] = 1  # 修改线条宽度
plt.plot(x, x ** 2)
plt.title('y = x^2')
# 绘制第二张图
pic.add_subplot(2, 2, 2)
mpl.rc('lines', linestyle = '--', linewidth = 10)  # 以 matplotlib.rc() 函数命令方式修改 rc 参数
plt.plot(x, x ** 2)
plt.title('y = x^2')
# 绘制第三张图
pic.add_subplot(2, 2, 3)
plt.rcParams['lines.marker'] = None  # 修改线条上点的形状
plt.rcParams['lines.linewidth'] = 3
plt.plot(x, x ** 2)
plt.title('y = x^2')
# 绘制第四张图
pic.add_subplot(2, 2, 4)
plt.rcParams['lines.linestyle'] = ':'
plt.rcParams['lines.linewidth'] = 6
plt.plot(x, x ** 2)
plt.title('y = x^2')
plt.savefig('./tmp/线条rc参数对比.png')
plt.show()


针对线条常用的 rc 参数名称、解释与取值如表:

其中 lines.linestyle 参数 4 种取值的意义:

lines.marker 参数的 20 种取值及其所代表的意义:

2.坐标轴常用的 rc 参数

同样,管理坐标轴属性的 rc 参数 axes 也能控制坐标轴的任意细节。坐标轴常用的 rc 参数修改如下代码:

x = np.linspace(0, 10, 1000)
plt.plot(x, np.sin(x))
plt.show()

x = np.linspace(0, 10, 1000)
plt.rcParams['axes.edgecolor'] = 'b'  # 轴颜色设置为蓝色
plt.rcParams['axes.grid'] = True  # 添加网格
plt.rcParams['axes.spines.top'] = False  # 去除顶部轴
plt.rcParams['axes.spines.right'] = False  # 去除右侧轴
plt.rcParams['axes.xmargin'] = 0.1  # x 轴余留为区间长度的 0.1 倍
plt.plot(x, np.sin(x))
plt.show()


更多的坐标轴常用 rc 参数名称、接收、取值如下:

3.字体常用的 rc 参数

由于默认的 pyplot 字体并不支持中文字符的显示,因此需要通过修改 font.sans-serif 参数来修改绘图时的字体,使得图形可以正常显示中文。同时,由于修改字体后,会导致坐标轴中负号“ - ”无法正常显示,因此需要同时修改 axes.unicode_minus 参数。参数修改前后对比如下代码:

# 原图
x = np.arange(0, 10, 0.2)
y = np.sin(x)
fig = plt.figure()
fig.add_subplot(111)
plt.title('sin 曲线 ')
plt.plot(x, y)
plt.savefig('./tmp/sin曲线1.png')
plt.show()

# 修改参数后
plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置字体为 SimHei
plt.rcParams['axes.unicode_minus'] = False  # 解决负号“ - ”显示异常
plt.title('sin 曲线 ')
plt.plot(x, y)
plt.savefig('./tmp/sin曲线2.png')
plt.show()


除字体与符号编码参数外,更多的字体常用 rc 参数 名称、接收、取值如下表:

如果希望 rc 参数恢复到缺省的配置( matplotlib 载入时从配置文件读入的配置),可以调用 matplotlib.rcdefaults() 函数。

数据可视化|实验一 绘图基础语法和常用参数相关推荐

  1. Matplotlib【学习大礼包】数据可视化基础 掌获绘图基础语法与常用参数、设置pyplot的动态rc参数、 绘制散点图、折线图、直方图、饼图

    文章目录 如何查看完整版!!(代码+图片) 第3章 Matplotlib 数据可视化基础 3.1 掌获绘图基础语法与常用参数 3.1.1 掌获pyplot基础语法 1.创建画布与创建子图 2.添加画布 ...

  2. 绘图基础语法与常用参数

    1 # -*- coding: utf-8 -*- 2 3 ###################################################################### ...

  3. 06Matplotlib数据可视化--6.1绘图基础

  4. 分形、大自然的分形几何、数据可视化、Python绘图

    分形.大自然的分形几何.数据可视化.Python绘图 中国传统中的『分形』 大自然的分形几何 数据可视化 本系列采用turtle.matplotlib.numpy这三个Python工具,以分形与计算机 ...

  5. 数据可视化实验:python数据可视化-柱状图,条形图,直方图,饼图,棒图,散点图,气泡图,雷达图,箱线图,折线图

    数据可视化实验:python数据可视化 实验8-12:大数据可视化工具-python 目录 1柱状图 2条形图 3直方图 4饼图 5棒图 6散点图 7气泡图 8雷达图 9箱线图 10折线图 1柱状图 ...

  6. 数据可视化--实验3

    数据可视化–实验3 通过excel.python完成本次实验 题目 1."产品销售统计数据.xls"是某一商品在全国各个基地的销售统计数据,请用饼图绘制出包涵所有数据的分析图表.绘 ...

  7. 数据可视化--实验五:高维非空间数据可视化

    声明:本文CSDN作者原创投稿文章,未经许可禁止任何形式的转载,原文链接 文章目录 概要 实验过程 Pyecharts 实验结果 平行坐标系 room1-6房间人员时长饼图 概要 学院:计算机科学与技 ...

  8. 西电-数据可视化-实验五-高维非空间数据可视化(pyecharts)

    西电-数据可视化-实验五-高维非空间数据可视化 一.实验内容 在某次大型会议中,为确保会议过程安全,会场使用了电子胸牌对场内人员的移动轨迹进行了监控.现经过处理,得到了某一天内人员在场内各个区域逗留的 ...

  9. 大数据HiveSQL学习笔记三-查询基础语法以及常用函数

    大数据HiveSQL学习笔记三-查询基础语法以及常用函数 一.基础语法 1.SELECT -列名- FROM -表名- WHERE -筛选条件- 如:需要根据城市,性别找出匹配的10个用户 user_ ...

最新文章

  1. 传统运维团队转型应该注意哪些问题?
  2. lookupedit选中之后的事件_姚明之后,易建联之前!曾经的国产第四中锋,为何没去成NBA?...
  3. struts配置详解
  4. Linux gdb调试器
  5. MVC5中EF6 Code First启动慢及间隙变慢优化的实践经验(转)
  6. 链式栈的实现(头文件及源程序)
  7. LeetCode算法入门- Multiply Strings -day18
  8. GNS3-ENSP对接实验
  9. 职业教育计算机课教学反思,职高课后的教学反思(精选5篇)
  10. SPT20 协议_过户协议书模板五篇
  11. Python接口自动化之logging封装及实战
  12. Linux下搭建DHCP服务器 【2020.12.01】
  13. java intent 传递集合对象_Android系列之Intent传递对象的几种实例方法
  14. WCF分布式开发常见错误(17):无法启动MSMQ服务
  15. “抖音群控系统”教你如何抓住短视频时代风口,进行流量红利变现
  16. 成都市计算机会考,四川省高中信息技术会考资料及试题
  17. Spark 学习路线
  18. 12个思维导图工具,像数据科学家一样结构化地思考
  19. html5 报表erp案例,SpreadJS 纯前端表格控件应用案例:集成 Odoo 提升企业ERP表格功能...
  20. 公寓宽带服务器无响应,利用RLDP协议解决网络环路故障

热门文章

  1. 如何利用Excel进行同类项合并?
  2. 关于2019的一些想法
  3. SAP Spartacus 的延迟加载 Lazy load 设计原理
  4. ABAP 编程语言中的系统字段(System Fields)
  5. 如何把一个PDF文件内的部分页码对应的内容导出成一个新的PDF文件
  6. SAP Spartacus storefront.component.html 里的 SkipLinkComponent 如何创建的
  7. SAP Spartacus里modifiedtime的大小写问题
  8. SAP Spartacus的ComponentFactory和ComponentFactoryResolver - 动态添加outlet
  9. JavaScript ES6对Proxy的原生支持的一个例子:开发人员学习额外的编程语言
  10. Hybris service layer和SAP CRM WebClient UI架构的横向比较