Python数据可视化第六节(坐标轴的定制)
6.1 坐标轴概述
在绘制图表的过程中,marplotlib会根据所终園表的类形洪定是否使用坐标系,或者显示哪种类型的坐标系。例如,饼图无坐标系,雷达劉需使用板坐标系,折线園雷使用直魚璺船系等。其中,直角坐标系经常被使用。marplotlib 中的直角坐标系由两条水平坐标轴,两条垂直坐标轴以及围成的绘图区城构成,以限制图形显示的区城,其左侧和下方的坐标轴 (叫做Y轴和X轴)经常被使用,其他坐标轴很少被使用。
6.2 向任位置添加坐标轴
marplotlib支特向画布的任意位置添加自定义大小的坐标系统,同时显示坐标轴,而不再受规划区城的限制。pyplot機块可以使用axes()函数创建一个人Axes类的对象。并将Axes类的对象添加到当前画布中。axes()函数的语法格式如下:
axes (arg=None projection=None, polar=False, aspect, frame_on, **kwargs)
案例一:
1.代码如下:
import matplotlib.pyplot as plt
ax = plt.axes((0.2, 0.5, 0.3, 0.3))
ax.plot([1, 2, 3, 4, 5])
ax2 = plt.axes((0.6, 0.4, 0.2, 0.2))
ax2.plot([1, 2, 3, 4, 5])
plt.title("2020080603052")
plt.show()
运行代码结果如下:
6.3 定制刻度
6.3.1 定制刻度的位置和格式
在matplotlib中,刻度线分为主刻度线和次刻度线,次刻度线默认是隐藏matplotlib.ticker模块中提供了两个类:Locator 和Formatter,分別代表刻度定位器和刻度格式器,用于指定刻度线的位置和刻度标签的格式。
6.3.2 定制刻度的样式
在matplotlib 中,坐标轴的刻度有着固定的样式,例如,刻度线的方向是朝外的,刻度
线的颜色是黑色等。pyplot 中可以使用tick_paramas()函数定制刻度的样式tick_parama()函数的语法格式如下:
tick_params(axis='both',**kwargs)
案例二:
1.代码如下:
import matplotlib.pyplot as plt
from datetime import datetime
from matplotlib.dates import DateFormatter, HourLocator
ax = plt.gca()
hour_loc = HourLocator(interval=2)
date_fmt = DateFormatter('%Y/%m/%d')
ax.xaxis.set_major_locator(hour_loc)
ax.xaxis.set_major_formatter(date_fmt)
plt.tick_params(labelrotation=30)
运行代码,结果如下:
案例三:深圳市24小时的平均风速
数据如下:
时间 | 风速 |
---|---|
00:00 | 7 |
02:00 | 9 |
04:00 | 11 |
06:00 | 14 |
08:00 | 8 |
10:00 | 15 |
12:00 | 22 |
14:00 | 11 |
16:00 | 10 |
18:00 | 11 |
20:00 | 13 |
24:00 | 8 |
运行代码如下: |
# 实例6:深圳市24小时的平均风速
import numpy as np
from datetime import datetime
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter, HourLocator
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
dates = ['201910240','2019102402','2019102404','2019102406','2019102408','2019102410','2019102412', '2019102414','2019102416','2019102418','2019102420','2019102422','201910250' ]
x_date = [datetime.strptime(d, '%Y%m%d%H') for d in dates]
y_data = np.array([7, 9, 11, 14, 8, 15, 22, 11, 10, 11, 11, 13, 8])
fig = plt.figure()
ax = fig.add_axes((0.0, 0.0, 1.0, 1.0))
ax.plot(x_date, y_data, '->', ms=8, mfc='#FF9900')
ax.set_title(' 深圳市24小时的平均风速 2020080603052')
ax.set_xlabel('时间(h)')
ax.set_ylabel('平均风速(km/h)')
# 设置 x 轴主刻度的位置和格式
date_fmt = DateFormatter('%H:%M')
ax.xaxis.set_major_formatter(date_fmt)
ax.xaxis.set_major_locator(HourLocator(interval=2))
ax.tick_params(direction='in', length=6, width=2, labelsize=12)
ax.xaxis.set_tick_params(labelrotation=45)
plt.show()
运行代码,结果如下:
6.4 隐藏轴脊
案例四:隐藏全部轴脊
代码如下:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
polygon = mpathes.RegularPolygon((0.5, 0.5), 6, 0.2, color='g')
ax = plt.axes((0.3, 0.3, 0.5, 0.5))
ax.add_patch(polygon)
# 隐藏全部轴脊
ax.axis('off')
plt.title("2020080603052")
plt.show()
运行代码,结果如下:
案例五:隐藏部分轴脊
代码如下:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
xy = np.array([0.5,0.5])
polygon = mpathes.RegularPolygon(xy, 5, 0.2,color='y')
ax = plt.axes((0.3, 0.3, 0.5, 0.5))
ax.add_patch(polygon)
# 依次隐藏上轴脊、左轴脊和右轴脊
ax.spines['top'].set_color('none')
ax.spines['left'].set_color('none')
ax.spines['right'].set_color('none')
plt.title("2020080603052")
plt.show()
运行代码,结果如下:
运行代码如下:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
xy = np.array([0.5,0.5])
polygon = mpathes.RegularPolygon(xy, 5, 0.2,color='y')
ax = plt.axes((0.3, 0.3, 0.5, 0.5))
ax.add_patch(polygon)
# 依次隐藏上轴脊、左轴脊和右轴脊
ax.spines['top'].set_color('none')
ax.spines['left'].set_color('none')
ax.spines['right'].set_color('none')
# 插入如下代码
ax.yaxis.set_ticks_position('none')
ax.set_yticklabels([])
plt.title("2020080603052")
plt.show()
运行代码,结果如下:
案例六:深圳市24小时的平均风速
代码如下:
# 实例6:深圳市24小时的平均风速
import numpy as np
from datetime import datetime
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter, HourLocator
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
dates = ['201910240','2019102402','2019102404','2019102406','2019102408','2019102410','2019102412', '2019102414','2019102416','2019102418','2019102420','2019102422','201910250' ]
x_date = [datetime.strptime(d, '%Y%m%d%H') for d in dates]
y_data = np.array([7, 9, 11, 14, 8, 15, 22, 11, 10, 11, 11, 13, 8])
fig = plt.figure()
ax = fig.add_axes((0.0, 0.0, 1.0, 1.0))
ax.plot(x_date, y_data, '->', ms=8, mfc='#FF9900')
ax.set_title(' 深圳市24小时的平均风速 2020080603052')
ax.set_xlabel('时间(h)')
ax.set_ylabel('平均风速(km/h)')
# 设置 x 轴主刻度的位置和格式
date_fmt = DateFormatter('%H:%M')
ax.xaxis.set_major_formatter(date_fmt)
ax.xaxis.set_major_locator(HourLocator(interval=2))
ax.tick_params(direction='in', length=6, width=2, labelsize=12)
ax.xaxis.set_tick_params(labelrotation=45)
# 隐藏上轴脊和右轴脊
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
plt.show()
运行代码,结果如下:
6.5 移动轴脊
案例七:移动轴脊的位置:
代码如下:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
xy = np.array([0.5,0.5])
polygon = mpathes.RegularPolygon(xy, 5, 0.2,color='y')
ax = plt.axes((0.3, 0.3, 0.5, 0.5))
ax.add_patch(polygon)
# 隐藏上轴脊和右轴脊
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
# 移动轴脊的位置
ax.spines['left'].set_position(('data', 0.5))
ax.spines['bottom'].set_position(('data', 0.5))
plt.title("2020080603052")
plt.show()
运行代码,结果如下:
案例八:正弦与余弦曲线
代码如下:
# 03_sin_and_cos
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
x_data = np.linspace(-2 * np.pi, 2 * np.pi, 100)
y_one = np.sin(x_data)
y_two = np.cos(x_data)
fig = plt.figure()
ax = fig.add_axes((0.2, 0.2, 0.7, 0.7))
ax.plot(x_data, y_one, label='正弦曲线 ')
ax.plot(x_data, y_two, label='余弦曲线 ')
ax.legend()
ax.set_xlim(-2 * np.pi, 2 * np.pi)
ax.set_xticks([-2 * np.pi, -3 * np.pi / 2, -1 * np.pi, -1 * np.pi / 2, 0, np.pi / 2, np.pi, 3 * np.pi / 2, 2 * np.pi])
ax.set_xticklabels(['$-2\pi$', '$-3\pi/2$', '$-\pi$', '$-\pi/2$ ', '$0$', '$\pi/2$', '$\pi$', '$3\pi/2$', '$2\pi$'])
ax.set_yticks([-1.0, -0.5, 0.0, 0.5, 1.0])
ax.set_yticklabels([-1.0, -0.5, 0.0, 0.5, 1.0])
# 隐藏右轴脊和上轴脊
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# 移动左轴脊和下轴脊的位置
ax.spines['left'].set_position(('data', 0))
ax.spines['bottom'].set_position(('data', 0))
plt.title("2020080603052")
plt.show()
运行代码,结果如下:
Python数据可视化第六节(坐标轴的定制)相关推荐
- python数据可视化第七节(绘制3D图表和统计地图)
7.1 使用mplot3绘制3D图表 7.1.1 mplot3D概述 mplot3d 是 matplotlib中专门经制 3D图表的工具包,它主要包含一个继承自 Axes 的子类Axes3D,使用 A ...
- Python数据可视化第四节-图表样式美化实例
实例一:两个地区对不同种类图书的采购情况 代码如下: import numpy as np import matplotlib.pyplot as plt plt.rcParams["fon ...
- 《Python数据可视化之matplotlib实践》配套代码
向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程 公众号:datayx <Python数据可视化之matplotlib实践> 借助matplotlib讲解 ...
- Python数据分析初探项目 基于Python数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022年)
Python 数据分析初探项目 基于 Python 数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022 年) Python 数据分析初探项目 基于 Python 数据可 ...
- Python数据可视化三部曲之 Seaborn 从上手到上头
Python数据可视化三部曲之 Seaborn 从上手到上头 文章目录 1. 安装 seaborn 2.准备数据 3.背景与边框 3.1 设置背景风格 3.3 其他 3.2 边框控制 4. 绘制 ...
- Python数据可视化之折线图
Python数据可视化之折线图 提示:前言 Python数据可视化之折线图 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Python数据可视化之折线图 前言 一.导入包 ...
- Python数据可视化(三)绘制统计图形大全
3.1 柱状图 以 Python 代码的形式讲解柱状图的绘制原理,这里重点讲解 bar()函数的使用方法. 代码: import matplotlib as mpl import matplotlib ...
- 《Python数据可视化编程实战》——5.5 用OpenGL制作动画
本节书摘来异步社区<Python数据可视化编程实战>一书中的第5章,第5.5节,作者:[爱尔兰]Igor Milovanović,更多章节内容可以访问云栖社区"异步社区" ...
- python画折线图详解-Python数据可视化(一) 绘制折线图和散点图
数据可视化示例 对数据可视化的浅认知 数据可视化是任何数据科学或机器学习的重要组成部分.可视化能将数据以更加直观的方式展现出来,使数据更加客观.更具说服力.同时,也易于发现隐藏在数据中的规律和意义.尤 ...
最新文章
- c++ 大数类 大数模板
- 实战NFS服务搭建与配置
- MySQL之IFNULL()、ISNULL、NULLIF用法
- WAMP本地环境升级php版本操作步骤(详细)
- python循环三次跳出循环_Python3 跳出多重循环 for...else...
- 计算机网络应用基础_2020年天津市成人高考 高起专 计算机基础题型总结
- 苹果手机注册时显示链接服务器出现问题,苹果手机出现连接到服务器时出现问题是什么回事...
- 小智-微直播 使用教程
- Windows 命令行基础
- 通过扫码下载安卓和ios安装包
- 解决“应用程序正常初始化(0x00000005)失败”错误
- 【Power BI】分析仪在餐饮业中的应用
- 微信公众号开发功能大全
- excel使用小技巧-冻结窗格
- PHP7.1 mcrypt_module_open() is deprecated
- 求一款快捷回复工具聊天辅助软件手机版(聊天微快聊回复助手)
- 高性能MySQL -- 查询性能优化
- Flink 入门实战之一HelloWord
- 超详细Uart驱动框架及编程方法
- alook浏览器哪个好 夸克浏览器_软件分享之Alook浏览器
热门文章
- poj 2987 Firing (最大权闭合子图)
- 内容运营、用户运营、活动运营
- 关于计算机春联PPT,春节对联ppt
- avue table crud
- OEM 电脑无法 KMS 激活 error 0xC004F035
- 数据管理能力成熟度评估模型(Word版)国家标准GB/T 36073—2018
- 大数据揭秘:科创板开张在即,开户者男性居多,70后更有实力
- r7 2700X装Linux,R7-2700X配什么主板?AMD锐龙7 2700X主板推荐
- Object-C,对象和方法
- 8145v5 参数_SpringBoot外化配置源码解析:外化配置简介、参数处理|value|spring|调用|参数值