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数据可视化第六节(坐标轴的定制)相关推荐

  1. python数据可视化第七节(绘制3D图表和统计地图)

    7.1 使用mplot3绘制3D图表 7.1.1 mplot3D概述 mplot3d 是 matplotlib中专门经制 3D图表的工具包,它主要包含一个继承自 Axes 的子类Axes3D,使用 A ...

  2. Python数据可视化第四节-图表样式美化实例

    实例一:两个地区对不同种类图书的采购情况 代码如下: import numpy as np import matplotlib.pyplot as plt plt.rcParams["fon ...

  3. 《Python数据可视化之matplotlib实践》配套代码

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx <Python数据可视化之matplotlib实践> 借助matplotlib讲解 ...

  4. Python数据分析初探项目 基于Python数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022年)

    Python 数据分析初探项目 基于 Python 数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022 年) Python 数据分析初探项目 基于 Python 数据可 ...

  5. Python数据可视化三部曲之 Seaborn 从上手到上头

      Python数据可视化三部曲之 Seaborn 从上手到上头 文章目录 1. 安装 seaborn 2.准备数据 3.背景与边框 3.1 设置背景风格 3.3 其他 3.2 边框控制 4. 绘制 ...

  6. Python数据可视化之折线图

    Python数据可视化之折线图 提示:前言 Python数据可视化之折线图 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Python数据可视化之折线图 前言 一.导入包 ...

  7. Python数据可视化(三)绘制统计图形大全

    3.1 柱状图 以 Python 代码的形式讲解柱状图的绘制原理,这里重点讲解 bar()函数的使用方法. 代码: import matplotlib as mpl import matplotlib ...

  8. 《Python数据可视化编程实战》——5.5 用OpenGL制作动画

    本节书摘来异步社区<Python数据可视化编程实战>一书中的第5章,第5.5节,作者:[爱尔兰]Igor Milovanović,更多章节内容可以访问云栖社区"异步社区" ...

  9. python画折线图详解-Python数据可视化(一) 绘制折线图和散点图

    数据可视化示例 对数据可视化的浅认知 数据可视化是任何数据科学或机器学习的重要组成部分.可视化能将数据以更加直观的方式展现出来,使数据更加客观.更具说服力.同时,也易于发现隐藏在数据中的规律和意义.尤 ...

最新文章

  1. c++ 大数类 大数模板
  2. 实战NFS服务搭建与配置
  3. MySQL之IFNULL()、ISNULL、NULLIF用法
  4. WAMP本地环境升级php版本操作步骤(详细)
  5. python循环三次跳出循环_Python3 跳出多重循环 for...else...
  6. 计算机网络应用基础_2020年天津市成人高考 高起专 计算机基础题型总结
  7. 苹果手机注册时显示链接服务器出现问题,苹果手机出现连接到服务器时出现问题是什么回事...
  8. 小智-微直播 使用教程
  9. Windows 命令行基础
  10. 通过扫码下载安卓和ios安装包
  11. 解决“应用程序正常初始化(0x00000005)失败”错误
  12. 【Power BI】分析仪在餐饮业中的应用
  13. 微信公众号开发功能大全
  14. excel使用小技巧-冻结窗格
  15. PHP7.1 mcrypt_module_open() is deprecated
  16. 求一款快捷回复工具聊天辅助软件手机版(聊天微快聊回复助手)
  17. 高性能MySQL -- 查询性能优化
  18. Flink 入门实战之一HelloWord
  19. 超详细Uart驱动框架及编程方法
  20. alook浏览器哪个好 夸克浏览器_软件分享之Alook浏览器

热门文章

  1. poj 2987 Firing (最大权闭合子图)
  2. 内容运营、用户运营、活动运营
  3. 关于计算机春联PPT,春节对联ppt
  4. avue table crud
  5. OEM 电脑无法 KMS 激活 error 0xC004F035
  6. 数据管理能力成熟度评估模型(Word版)国家标准GB/T 36073—2018
  7. 大数据揭秘:科创板开张在即,开户者男性居多,70后更有实力
  8. r7 2700X装Linux,R7-2700X配什么主板?AMD锐龙7 2700X主板推荐
  9. Object-C,对象和方法
  10. 8145v5 参数_SpringBoot外化配置源码解析:外化配置简介、参数处理|value|spring|调用|参数值