数据可视化|实验一 绘图基础语法和常用参数
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() 函数。
数据可视化|实验一 绘图基础语法和常用参数相关推荐
- Matplotlib【学习大礼包】数据可视化基础 掌获绘图基础语法与常用参数、设置pyplot的动态rc参数、 绘制散点图、折线图、直方图、饼图
文章目录 如何查看完整版!!(代码+图片) 第3章 Matplotlib 数据可视化基础 3.1 掌获绘图基础语法与常用参数 3.1.1 掌获pyplot基础语法 1.创建画布与创建子图 2.添加画布 ...
- 绘图基础语法与常用参数
1 # -*- coding: utf-8 -*- 2 3 ###################################################################### ...
- 06Matplotlib数据可视化--6.1绘图基础
- 分形、大自然的分形几何、数据可视化、Python绘图
分形.大自然的分形几何.数据可视化.Python绘图 中国传统中的『分形』 大自然的分形几何 数据可视化 本系列采用turtle.matplotlib.numpy这三个Python工具,以分形与计算机 ...
- 数据可视化实验:python数据可视化-柱状图,条形图,直方图,饼图,棒图,散点图,气泡图,雷达图,箱线图,折线图
数据可视化实验:python数据可视化 实验8-12:大数据可视化工具-python 目录 1柱状图 2条形图 3直方图 4饼图 5棒图 6散点图 7气泡图 8雷达图 9箱线图 10折线图 1柱状图 ...
- 数据可视化--实验3
数据可视化–实验3 通过excel.python完成本次实验 题目 1."产品销售统计数据.xls"是某一商品在全国各个基地的销售统计数据,请用饼图绘制出包涵所有数据的分析图表.绘 ...
- 数据可视化--实验五:高维非空间数据可视化
声明:本文CSDN作者原创投稿文章,未经许可禁止任何形式的转载,原文链接 文章目录 概要 实验过程 Pyecharts 实验结果 平行坐标系 room1-6房间人员时长饼图 概要 学院:计算机科学与技 ...
- 西电-数据可视化-实验五-高维非空间数据可视化(pyecharts)
西电-数据可视化-实验五-高维非空间数据可视化 一.实验内容 在某次大型会议中,为确保会议过程安全,会场使用了电子胸牌对场内人员的移动轨迹进行了监控.现经过处理,得到了某一天内人员在场内各个区域逗留的 ...
- 大数据HiveSQL学习笔记三-查询基础语法以及常用函数
大数据HiveSQL学习笔记三-查询基础语法以及常用函数 一.基础语法 1.SELECT -列名- FROM -表名- WHERE -筛选条件- 如:需要根据城市,性别找出匹配的10个用户 user_ ...
最新文章
- 传统运维团队转型应该注意哪些问题?
- lookupedit选中之后的事件_姚明之后,易建联之前!曾经的国产第四中锋,为何没去成NBA?...
- struts配置详解
- Linux gdb调试器
- MVC5中EF6 Code First启动慢及间隙变慢优化的实践经验(转)
- 链式栈的实现(头文件及源程序)
- LeetCode算法入门- Multiply Strings -day18
- GNS3-ENSP对接实验
- 职业教育计算机课教学反思,职高课后的教学反思(精选5篇)
- SPT20 协议_过户协议书模板五篇
- Python接口自动化之logging封装及实战
- Linux下搭建DHCP服务器 【2020.12.01】
- java intent 传递集合对象_Android系列之Intent传递对象的几种实例方法
- WCF分布式开发常见错误(17):无法启动MSMQ服务
- “抖音群控系统”教你如何抓住短视频时代风口,进行流量红利变现
- 成都市计算机会考,四川省高中信息技术会考资料及试题
- Spark 学习路线
- 12个思维导图工具,像数据科学家一样结构化地思考
- html5 报表erp案例,SpreadJS 纯前端表格控件应用案例:集成 Odoo 提升企业ERP表格功能...
- 公寓宽带服务器无响应,利用RLDP协议解决网络环路故障
热门文章
- 如何利用Excel进行同类项合并?
- 关于2019的一些想法
- SAP Spartacus 的延迟加载 Lazy load 设计原理
- ABAP 编程语言中的系统字段(System Fields)
- 如何把一个PDF文件内的部分页码对应的内容导出成一个新的PDF文件
- SAP Spartacus storefront.component.html 里的 SkipLinkComponent 如何创建的
- SAP Spartacus里modifiedtime的大小写问题
- SAP Spartacus的ComponentFactory和ComponentFactoryResolver - 动态添加outlet
- JavaScript ES6对Proxy的原生支持的一个例子:开发人员学习额外的编程语言
- Hybris service layer和SAP CRM WebClient UI架构的横向比较