一年来终于用实际案例把matplotlib的绘图坐标轴说清楚了-太给力了
学习如果设计坐标轴的主标和辅标
1、正常显示汉字和负号的代码段
mp.rcParams['font.sans-serif']=['SimHei']
mp.rcParams['axes.unicode_minus']=False
2、调用坐标轴和设置主图代码
# 坐标刻度定位器
mp.figure()
# 调用坐标轴
ax = mp.gca()
3、隐藏top:上,right:右坐标线代码
ax.spines['left'].set_position(('data',0))
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.spines['bottom'].set_position(('data', 0))
4、设置最小刻度~最大刻度代码
#以下两段代码为y0~5控制范围,x为0~11控制范围,可以理解为主刻度
mp.xlim(0, 11)
mp.ylim(0,5)
5、设置最小刻度~最大刻度代码
#以下两段代码为y0~5控制范围,x为0~11控制范围,可以理解为主刻度
mp.xlim(0, 11)
mp.ylim(0,5)
6、设置x水平轴主刻度(6-1)~(6-2)分刻度代码
#6-1:设置主刻度,主刻度参数为2时,显示0,2,4....,如果为3呢?
ax.xaxis.set_major_locator(mp.MultipleLocator(3))
#6-2:这里设置的是x轴的分刻度,分刻度参数为0.3,0~3之间被分成10个小格。
ax.xaxis.set_minor_locator(mp.MultipleLocator(0.3))
6、设置y竖直轴分刻度代码
#修改为设置y轴的分刻度代码
ax.yaxis.set_minor_locator(mp.MultipleLocator(0.5))
7、为x水平轴添加辅助的文字说明
mp.text(5, 0.3, '坐标定位-主标和次标的设置原理图', ha='center', size=12)
设计代码分析
import numpy as np
import matplotlib.pyplot as mpmp.rcParams['font.sans-serif']=['SimHei']
mp.rcParams['axes.unicode_minus']=False
# 坐标刻度定位器
mp.figure()
#以下两段代码为y0~5控制范围,x为0~11控制范围,可以理解为主刻度
mp.xlim(0, 11)
mp.ylim(0,5)
#这里手动把y轴添加上0~5个主刻度,顺便加上文字标签
mp.yticks([0,1,2,3,4,5])
#mp.yticks(['一','二','三','四','五','六'],rotation=30)
# 调用坐标轴
ax = mp.gca()
# 只留底轴,其余颜色设置为透明
ax.spines['left'].set_position(('data',0))
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.spines['bottom'].set_position(('data', 0))
# 设置主刻度,主刻度参数为2时,显示0,2,4....,如果为3呢?
ax.xaxis.set_major_locator(mp.MultipleLocator(3))
#这里设置的是x轴的分刻度,分刻度参数为0.3,0~3之间被分成10个小格。
ax.xaxis.set_minor_locator(mp.MultipleLocator(0.3))
#修改为设置y轴的分刻度代码
ax.yaxis.set_minor_locator(mp.MultipleLocator(0.5))mp.plot(np.arange(11), np.zeros(11), c='none')
# 加一个文字,(ha=为中心对齐)
mp.text(5, 0.3, '坐标定位-主标和次标的设置原理图', ha='center', size=12)
mp.title('学习设置刻度主标和辅标',fontsize=23)
mp.show()
代码扩展练习:
根据前面的代码内容,试卷把坐标添加上箭头吧,下面给出如果添加箭头的代码段
问题思考:
提交的图片中背景是有颜色的,这里是如何实现的呢?
请把对应的代码答案,留言区讨论一下吧!
pd中对坐标轴添加箭头,坐标轴箭头
1 导入模块设置axisartist轴艺术
2 主画板fig,把主画板添加到艺术画板,艺术画板命名ax
3 把这些艺术画板作为子区域添加到主画板fig中。
4 设计指定轴的样式为箭头
5 隐藏不需要的轴,完成基础工作。import mpl_toolkits.axisartist as axisartist
#定义主画板
fig = mp.figure()
# 定义艺术画板名称为ax,添加子图参数中绑定主画板
ax = axisartist.Subplot(fig,111)
#主画板中添加艺术画板
fig.add_axes(ax)
#实现箭头坐标轴装饰,首先在定义调用坐标轴位置,然后确定轴线_类型,
箭头样式:空->,实-|>
箭头尺寸:size=1.5
ax.axis['bottom'].set_axisline_style('-|>',size=1.5)
ax.axis['left'].set_axisline_style('->',size=1.8)
#艺术画板中隐藏坐标轴
ax.axis["top"].set_visible(False)
ax.axis["right"].set_visible(False)
plt.show()
扩展练习效果图
实际案例:画三角形
import matplotlib.pyplot as mp
import mpl_toolkits.axisartist as axisartistmp.rcParams['font.sans-serif'] = ['SimHei']
mp.rcParams['axes.unicode_minus'] = Falseclass Art_axis():def axis_arrow():# 定位主图容器,把主图容器包装成一个艺术子画板,在主图中调用艺术子画板fig = mp.figure()ax = axisartist.Subplot(fig, 111)fig.add_axes(ax)#实现箭头坐标轴装饰, 明确空箭头为 ->,实箭头为 -|>,大小为sizeax.axis['bottom'].set_axisline_style('-|>',size=1.5)ax.axis['left'].set_axisline_style('->',size=1.8)# 调用坐标轴ax = mp.gca()# 只留底轴,其余颜色设置为透明ax.spines['left'].set_position(('data',0))ax.spines['bottom'].set_position(('data', 0))#隐藏右上坐标轴ax.axis["top"].set_visible(False)ax.axis["right"].set_visible(False)return axdef scale(ax):#设置x轴的坐标范围mp.xlim(0, 13)# 设置主辅轴,主轴总长为5,单位长为1,最小间隔为0.5mp.ylim(0,5)ax.yaxis.set_major_locator(mp.MultipleLocator(1))ax.yaxis.set_minor_locator(mp.MultipleLocator(0.1))mp.title('学习绘制三角形在坐标系内',fontsize=18)ax = axis_arrow()scale(ax)def plot():#观察plot内的坐标和图中的坐标点位置,总结plot画三角形的技巧mp.plot([1,3],[1,4],'k')mp.plot([3, 8], [4, 1],'k:',lw=1.5)mp.plot([1,8],[1,1],'k')mp.annotate('A({},{})'.format(1, 1), xy=(1, 1), xytext=(0.3, 0.6),fontsize=16)mp.annotate('B({},{})'.format(3, 4), xy=(3, 4), xytext=(3.5, 4.1),fontsize=16)mp.annotate('C({},{})'.format(8, 1), xy=(8, 1), xytext=(8, 0.6),fontsize=16)plot()mp.show()Art_axis()
画三角形效果图
扩展思考:图中的背景颜色是哪行代码实现的呢?聪明的你找到答案后把代码留言交流区讨论一下吧!
自动生成三角形坐标的代码
确定坐标点:
- (a_x1,b_y1) A点坐标
- (b_x2,b_y2) B点坐标
- (c_x1,c_y1) C点坐标
import random
import matplotlib.pyplot as mp
import mpl_toolkits.axisartist as axisartistmp.rcParams['font.sans-serif'] = ['SimHei']
mp.rcParams['axes.unicode_minus'] = Falseclass Art_axis():def axis_arrow():# 定位主图容器,把主图容器包装成一个艺术子画板,在主图中调用艺术子画板fig = mp.figure(figsize=(6,5),dpi=80)ax = axisartist.Subplot(fig, 111)fig.add_axes(ax)#实现箭头坐标轴装饰, 明确空箭头为 ->,实箭头为 -|>,大小为sizeax.axis['bottom'].set_axisline_style('-|>',size=1.5)ax.axis['left'].set_axisline_style('->',size=1.8)# 调用坐标轴ax = mp.gca()# 只留底轴,其余颜色设置为透明ax.spines['left'].set_position(('data',0))ax.spines['bottom'].set_position(('data', 0))#隐藏右上坐标轴ax.axis["top"].set_visible(False)ax.axis["right"].set_visible(False)return axdef scale(ax):#设置x轴的坐标范围mp.xlim(0, 13)# 设置主辅轴,主轴总长为5,单位长为1,最小间隔为0.5mp.ylim(0,8)ax.yaxis.set_major_locator(mp.MultipleLocator(1))ax.yaxis.set_minor_locator(mp.MultipleLocator(0.1))mp.title('学习绘制三角形在坐标系内',fontsize=18)ax = axis_arrow()scale(ax)def plot():a_x1= random.randint(1,10)b_x2= random.randint(1,10)b_y1= random.randint(4,6)b_y2= random.randint(4,6)c_x1= random.randint(6,12)c_y1= random.randint(1, 6)if a_x1==b_y1==c_x1:a_x1 += 1b_y1 +=2c_x1 += 3mp.plot([a_x1, b_x2], [b_y1, b_y2], 'k') mp.plot([b_x2, c_x1], [b_y2, c_y1], 'k:', lw=1.5) mp.plot([a_x1, c_x1], [b_y1, c_y1], 'k') mp.annotate('A({},{})'.format(a_x1, b_y1), xy=(a_x1, b_y1), xytext=(a_x1, b_y1),fontsize=16)mp.annotate('B({},{})'.format(b_x2, b_y2), xy=(b_x2, b_y2), xytext=(b_x2, b_y2),fontsize=16)mp.annotate('C({},{})'.format(c_x1, c_y1), xy=(c_x1, c_y1), xytext=(c_x1, c_y1),fontsize=16)plot()mp.show()Art_axis()
效果图展示:
以上代码为类里面构造三角形三个顶点的代码函数,通过随机函数提供的定位好的坐标,来确定我们需要三角形的位置。
学后记:
感悟如下
- 本次学习的内容是前一年中,没有完全清楚的部分,但是今天重新拿出来按照正确的学习方式学习,问题迎刃而解了,开心。
- 学习有的时候不是一次性可以完全搞清楚的,需要把问题搁置起来,继续我们能够理解和学会的内容,等到有了一些必要的积累后,重新回头看你曾经不会的东西,有一天你会恍然大悟。
- 学习过程中遇到的问题,学会处理将来都会变成你的财富,让我们随着学习变的越来越有经验吧!
一年来终于用实际案例把matplotlib的绘图坐标轴说清楚了-太给力了相关推荐
- 太赞了!100个案例,Matplotlib 从入门到大神!
译文出品:Python数据之道 原文作者:Rizky Maulana Nurhidayat 翻译:Lemon Matplotlib 实操干货 本文是 Matplotlib 可视化的第二篇.在第一篇文章 ...
- 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第21章:抽象类与接口应用:课时94:案例分析二(绘图处理)
案例分析二 考虑一个表示绘图的标准,并且可以根据不同的图形来进行绘制: interface IGraphical { // 定义绘图标准public void paint() ; // 绘图 } cl ...
- Python爬虫案例:结合Matplotlib分析天气数据
目录 1.案例介绍 2.演示 3.代码 1.案例介绍 本案例爬取中国气象网的天气数据,并用图表工具分析降水数据. 2.演示 3.代码 # 分析天气数据爬虫案例 import requests,matp ...
- 搞了半天,终于弄懂了TCP Socket数据的接收和发送,太难~
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 本文将从上层介绍Linux上的TCP/IP栈是如何工作的,特别是s ...
- R语言实战应用精讲50篇(二十九)-R语言算法应用案例:路径路网轨迹绘图分析(英国自行车数据库)
本文主要介绍R包 PCT , 其目标是提高 Propensity to Cycle Too (PCT) 生成的数据的可访问性和可重复性,托管在 www.pct.bike 上. 英格兰和威尔士的自行车使 ...
- 【案例】数据量猛增,BI分析效率太低怎么破?
2019独角兽企业重金招聘Python工程师标准>>> 近日,Apache Kylin Innovation Meetup 在上海成功举办,有近200位小伙伴来到了现场.此次会议特别 ...
- PowerBI实用技巧:案例一(动态切换坐标轴列值,例如交叉表头、列,图表坐标轴等)
前段时间工作上面有一个需求,用户想要自己通过切片器来控制坐标轴的维度,那么这遍文章我就主要是要介绍一下如何制作动态的坐标轴. 这次分析的数据是销售的最低价格,分别从周日期.天日期和promotions ...
- 终于有人把微服务架构讲清白了!写得太好了
目录 一,微服务 1,服务注册发现 2,API 网关 3,配置中心 4,事件调度(kafka) 5,服务跟踪(starter-sleuth) 6,服务熔断(Hystrix) 7,API 管理 一,微服 ...
- 【OpenCV+Tkinter项目】同学,你要的OpenCV图像处理小系统已安排,终于有人把OpenCV那些必备的知识点讲透彻了~(太厉害了,已跪)
导语 OpenCV – 开源计算机视觉.它是计算机视觉和图像处理任务中使用最广泛的工具之一.它被 用于各种应用,如面部检测.视频捕捉.跟踪移动物体.对象公开.如今应用在 Covid 中,如 口罩检测. ...
最新文章
- vector机器人 WAYS TO INTERACT WITH VECTOR 与 VECTOR 的交互方式
- 【对讲机的那点事】公网对讲机选择物联网卡常见问题
- 第九章 转移指令的原理
- 安装wordcloud_COVID19数据分析实战:WordCloud 词云分析
- 弹性盒模型----容器属性
- (转) Arcgis for Javascript实现两个地图的联动
- android mysql代码_LitePal——Android数据库框架完整使用手册(示例代码)
- centos 打包RPM包 ntopng
- python采用面向对象编程模式吗_python基础5-面向对象编程
- Ubuntu18.04下NVIDIA CUDA安装指南和DeepLearning4J GPU配置
- 【干货分享】大话团队的GIT分支策略进化史
- 利用halcon的深度学习网络进行目标检测
- 解决百度文库不能复制最简单方法
- JavaWeb教程———过滤器
- formidable词根词缀_托福词汇-重点词根词缀总结(二)
- 什么是服务器?服务器是干什么用的?
- QNX系列:五、资源管理器(1)官方文档的翻译
- 无需注解快速生成API文档,跟SpringBoot绝配
- Markdown笔记及常用快捷键(自用)
- 苹果cmsv10简约大气电影网站模板自适应手机端模板非一品资源网