学习如果设计坐标轴的主标和辅标

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()

画三角形效果图


扩展思考:图中的背景颜色是哪行代码实现的呢?聪明的你找到答案后把代码留言交流区讨论一下吧!

自动生成三角形坐标的代码

确定坐标点:

  1. (a_x1,b_y1) A点坐标
  2. (b_x2,b_y2) B点坐标
  3. (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()

效果图展示:

以上代码为类里面构造三角形三个顶点的代码函数,通过随机函数提供的定位好的坐标,来确定我们需要三角形的位置。

学后记:

感悟如下

  1. 本次学习的内容是前一年中,没有完全清楚的部分,但是今天重新拿出来按照正确的学习方式学习,问题迎刃而解了,开心。
  2. 学习有的时候不是一次性可以完全搞清楚的,需要把问题搁置起来,继续我们能够理解和学会的内容,等到有了一些必要的积累后,重新回头看你曾经不会的东西,有一天你会恍然大悟。
  3. 学习过程中遇到的问题,学会处理将来都会变成你的财富,让我们随着学习变的越来越有经验吧!

一年来终于用实际案例把matplotlib的绘图坐标轴说清楚了-太给力了相关推荐

  1. 太赞了!100个案例,Matplotlib 从入门到大神!

    译文出品:Python数据之道 原文作者:Rizky Maulana Nurhidayat 翻译:Lemon Matplotlib 实操干货 本文是 Matplotlib 可视化的第二篇.在第一篇文章 ...

  2. 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第21章:抽象类与接口应用:课时94:案例分析二(绘图处理)

    案例分析二 考虑一个表示绘图的标准,并且可以根据不同的图形来进行绘制: interface IGraphical { // 定义绘图标准public void paint() ; // 绘图 } cl ...

  3. Python爬虫案例:结合Matplotlib分析天气数据

    目录 1.案例介绍 2.演示 3.代码 1.案例介绍 本案例爬取中国气象网的天气数据,并用图表工具分析降水数据. 2.演示 3.代码 # 分析天气数据爬虫案例 import requests,matp ...

  4. 搞了半天,终于弄懂了TCP Socket数据的接收和发送,太难~

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 本文将从上层介绍Linux上的TCP/IP栈是如何工作的,特别是s ...

  5. R语言实战应用精讲50篇(二十九)-R语言算法应用案例:路径路网轨迹绘图分析(英国自行车数据库)

    本文主要介绍R包 PCT , 其目标是提高 Propensity to Cycle Too (PCT) 生成的数据的可访问性和可重复性,托管在 www.pct.bike 上. 英格兰和威尔士的自行车使 ...

  6. 【案例】数据量猛增,BI分析效率太低怎么破?

    2019独角兽企业重金招聘Python工程师标准>>> 近日,Apache Kylin Innovation Meetup 在上海成功举办,有近200位小伙伴来到了现场.此次会议特别 ...

  7. PowerBI实用技巧:案例一(动态切换坐标轴列值,例如交叉表头、列,图表坐标轴等)

    前段时间工作上面有一个需求,用户想要自己通过切片器来控制坐标轴的维度,那么这遍文章我就主要是要介绍一下如何制作动态的坐标轴. 这次分析的数据是销售的最低价格,分别从周日期.天日期和promotions ...

  8. 终于有人把微服务架构讲清白了!写得太好了

    目录 一,微服务 1,服务注册发现 2,API 网关 3,配置中心 4,事件调度(kafka) 5,服务跟踪(starter-sleuth) 6,服务熔断(Hystrix) 7,API 管理 一,微服 ...

  9. 【OpenCV+Tkinter项目】同学,你要的OpenCV图像处理小系统已安排,终于有人把OpenCV那些必备的知识点讲透彻了~(太厉害了,已跪)

    导语 OpenCV – 开源计算机视觉.它是计算机视觉和图像处理任务中使用最广泛的工具之一.它被 用于各种应用,如面部检测.视频捕捉.跟踪移动物体.对象公开.如今应用在 Covid 中,如 口罩检测. ...

最新文章

  1. vector机器人 WAYS TO INTERACT WITH VECTOR 与 VECTOR 的交互方式
  2. 【对讲机的那点事】公网对讲机选择物联网卡常见问题
  3. 第九章 转移指令的原理
  4. 安装wordcloud_COVID19数据分析实战:WordCloud 词云分析
  5. 弹性盒模型----容器属性
  6. (转) Arcgis for Javascript实现两个地图的联动
  7. android mysql代码_LitePal——Android数据库框架完整使用手册(示例代码)
  8. centos 打包RPM包 ntopng
  9. python采用面向对象编程模式吗_python基础5-面向对象编程
  10. Ubuntu18.04下NVIDIA CUDA安装指南和DeepLearning4J GPU配置
  11. 【干货分享】大话团队的GIT分支策略进化史
  12. 利用halcon的深度学习网络进行目标检测
  13. 解决百度文库不能复制最简单方法
  14. JavaWeb教程———过滤器
  15. formidable词根词缀_托福词汇-重点词根词缀总结(二)
  16. 什么是服务器?服务器是干什么用的?
  17. QNX系列:五、资源管理器(1)官方文档的翻译
  18. 无需注解快速生成API文档,跟SpringBoot绝配
  19. Markdown笔记及常用快捷键(自用)
  20. 苹果cmsv10简约大气电影网站模板自适应手机端模板非一品资源网

热门文章

  1. 预防建筑倒塌高还能这样?
  2. 计算机视觉-OpenCV(七)
  3. NOI.6.08石头剪刀布
  4. 煮一壶清茶,悟一种人生
  5. 一个免费的在线录屏网站
  6. (JAVA) 相邻数对
  7. Qt多人协作项目执行方案
  8. MacOS使用minicom工具配置华为交换机
  9. perl use和require的用法
  10. PHP高性能编程-提高PHP速度-加速PHP执行-PHP性能优化实践