python 可视化 二维坐标标注等等 - 蔡军帅 - 博客园https://www.cnblogs.com/caiyishuai/p/9607250.html

大佬的分享,在这里方便自己总结学习,因此做一个转载

 基本画图操作:

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(-3,3,50)
y1 = 2*x+1
y2 = x**2#x的平方plt.figure()
plt.plot(x,y1) #画线
plt.scatter(x,y2) #画点plt.figure(num=333,figsize=(8,5))#图333
plt.plot(x,y2)plt.show()

 设置图例:

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(-3,3,50)
y1 = 2*x+1
y2 = x**2#x的平方plt.figure()plt.xlim((-1,2))
plt.ylim((-2,3))plt.xlabel('I am x')
plt.ylabel('I am y')new_ticks = np.linspace(-1,2,5)#5为5个单位
print(new_ticks)
plt.xticks(new_ticks)#用r(正则表达)和$框起来可以转换为计算机可以读的字体
#\加空格转义为空格,\加alpha能够输出 真正的alpha
plt.yticks([-2,-1.8,-1,1.22,3,],[r'$really\ bad$',r'$bad\ \alpha$','normal','good','really good'])l1,=plt.plot(x,y2,label='up')#画线
l2,=plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--',label='dowm')#‘--’为虚线
#loc可以为upper right等等
#要传到handles要加,用了labels后就不用l1,l2本身的label
plt.legend(handles=[l1,l2,],labels=['aaa','bbb'],loc='best')plt.show()

 设置坐标轴位置:

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(-3,3,50)
y1 = 2*x+1
y2 = x**2#x的平方plt.figure()
plt.plot(x,y2)
plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--')plt.xlim((-1,2))
plt.ylim((-2,3))plt.xlabel('I am x')
plt.ylabel('I am y')new_ticks = np.linspace(-1,2,5)#5为5个单位
print(new_ticks)
plt.xticks(new_ticks)#用r(正则表达)和$框起来可以转换为计算机可以读的字体
#\加空格转义为空格,\加alpha能够输出 真正的alpha
plt.yticks([-2,-1.8,-1,1.22,3,],[r'$really\ bad$',r'$bad\ \alpha$','normal','good','really good'])ax = plt.gca()#ax为上图
ax.spines['right'].set_color('none')#删除右边缘黑框
ax.spines['top'].set_color('none')#删除上边缘黑框
ax.xaxis.set_ticks_position('bottom')#令x轴为底边缘
ax.yaxis.set_ticks_position('left')#令y轴为左边缘
ax.spines['bottom'].set_position(('data',-1))#将底边缘放到 y轴数据-1的位置
ax.spines['left'].set_position(('data',0))#将左边缘放到 y轴数据-1的位置plt.show()

 标注:

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(-3,3,50)
y = 2*x+1plt.figure(num=1,figsize=(8,5),)
plt.plot(x,y,)ax = plt.gca()#ax为上图
ax.spines['right'].set_color('none')#删除右边缘黑框
ax.spines['top'].set_color('none')#删除上边缘黑框
ax.xaxis.set_ticks_position('bottom')#令x轴为底边缘
ax.yaxis.set_ticks_position('left')#令y轴为左边缘
ax.spines['bottom'].set_position(('data',0))#将底边缘放到 y轴数据-1的位置
ax.spines['left'].set_position(('data',0))#将左边缘放到 y轴数据-1的位置#添加标注
x0 =1
y0 = 2*x0+1
plt.scatter(x0,y0,s=50,color='b')#b代表blue
#plot(x列表,y列表)
plt.plot([x0,x0],[y0,y0],'k--',lw=2.5) #k代表黑色,lw为线宽#model 1
#annotate标注
#xy为基准点
#textcoords='offset point'代表以这个点为基准,标注在这个点的基础上x+30,y-30
#arrowprops描述箭头,线的弧度等信息
#xycoords='data' xy的坐标是基于data的
plt.annotate(r'$2x+1=%s$' % y0,xy=(x0,y0),xycoords='data',xytext=(+30,-30),textcoords='offset points',fontsize=16,arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2'))#mothod 2
plt.text(-3.7,3,r'$This\ is\ the\ some\ text.\ \mu\ \sigma_i\ \alpha_t$',fontdict={'size':16, 'color':'r'})plt.show()

 

annotate语法说明 :annotate(s='str' ,xy=(x,y) ,xytext=(l1,l2) ,..)
s 为注释文本内容 
xy 为被注释的坐标点
xytext 为注释文字的坐标位置
xycoords 参数如下:

  • figure points          points from the lower left of the figure 点在图左下方
  • figure pixels          pixels from the lower left of the figure 图左下角的像素
  • figure fraction       fraction of figure from lower left 左下角数字部分
  • axes points           points from lower left corner of axes 从左下角点的坐标
  • axes pixels           pixels from lower left corner of axes 从左下角的像素坐标
  • axes fraction        fraction of axes from lower left 左下角部分
  • data                     use the coordinate system of the object being annotated(default) 使用的坐标系统被注释的对象(默认)
  • polar(theta,r)       if not native ‘data’ coordinates t

extcoords 设置注释文字偏移量

| 参数 | 坐标系 |

| 'figure points' | 距离图形左下角的点数量 |

| 'figure pixels' | 距离图形左下角的像素数量 |

| 'figure fraction' | 0,0 是图形左下角,1,1 是右上角 |

| 'axes points' | 距离轴域左下角的点数量 |

| 'axes pixels' | 距离轴域左下角的像素数量 |

| 'axes fraction' | 0,0 是轴域左下角,1,1 是右上角 |

| 'data' | 使用轴域数据坐标系 |

arrowprops  #箭头参数,参数类型为字典dict

  • width           the width of the arrow in points                              点箭头的宽度
  • headwidth   the width of the base of the arrow head in points  在点的箭头底座的宽度
  • headlength  the length of the arrow head in points                   点箭头的长度
  • shrink          fraction of total length to ‘shrink’ from both ends  总长度为分数“缩水”从两端
  • facecolor     箭头颜色

bbox给标题增加外框 ,常用参数如下:

  • boxstyle方框外形
  • facecolor(简写fc)背景颜色
  • edgecolor(简写ec)边框线条颜色
  • edgewidth边框线条大小

bbox=dict(boxstyle='round,pad=0.5', fc='yellow', ec='k',lw=1 ,alpha=0.5)  #fc为facecolor,ec为edgecolor,lw为lineweight

设置不透明度:

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(-3,3,50)
y = 0.1*xplt.figure()
#alpha为设置不透明深度
plt.plot(x,y,linewidth=10,alpha=0.7)
plt.ylim(-2,2)#建立坐标系
ax = plt.gca()#ax为上图
ax.spines['right'].set_color('none')#删除右边缘黑框
ax.spines['top'].set_color('none')#删除上边缘黑框
ax.xaxis.set_ticks_position('bottom')#令x轴为底边缘
ax.yaxis.set_ticks_position('left')#令y轴为左边缘
ax.spines['bottom'].set_position(('data',0))#将底边缘放到 y轴数据-1的位置
ax.spines['left'].set_position(('data',0))#将左边缘放到 y轴数据-1的位置#解决线太粗把坐标挡住的问题
for label in ax.get_xticklabels() + ax.get_yticklabels():label.set_fontsize(18)label.set_bbox(dict(facecolor='yellow', edgecolor='None', alpha=0.7))
plt.show()

python 可视化 二维坐标标注等等相关推荐

  1. python自动标注autocad坐标_python 可视化 二维坐标标注等等

    基本画图操作: import matplotlib.pyplot as plt import numpy as np x = np.linspace(-3,3,50) y1 = 2*x+1 y2 = ...

  2. python函数图像平移_旋转、缩放和平移二维坐标?

    下面是一个关于矩阵的解决方案(这对于这种计算是有意义的,最后,二维坐标是一列的矩阵!)我是说 缩放非常简单,只需将矩阵的每个元素乘以缩放因子即可:scaled = copy.deepcopy(orig ...

  3. 希伯特数值与二维坐标的相互转换(python)

    希伯特曲线具体干什么的,就不多说了,直接上代码! class Hilbert:# n 行列数def __init__(self, n ):self.n = ndef rot(self, xy, rx, ...

  4. python可以使用二维元组吗_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)...

    怎么去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...

  5. Python生成二维码的操作方法

    使用的是qrcode库,在使用之前需要安装此库 pip install qrcode 网址 #python生成二维码 import qrcode img=qrcode.make("http: ...

  6. 基于Python的二维有限元声波方程正演计算

    基于Python的二维有限元声波方程正演计算 一.基础理论与相关公式的导出 什么是有限元方法? 有限元是计算复杂数学问题近似解的工具.当数学方程过于复杂,无法用正常的方法求解,并且一定程度的误差是可以 ...

  7. Python实现二维码表白内容

    Python实现二维码表白内容 python实现利于输入的话来实现二维码的呈现: #需要qrcode pillow tkinter三个库 qrcode库用于生成二维码图片 pillow用于进行图片的处 ...

  8. python生成二维码、动态二维码 和 而二维码解析

    python生成二维码.动态二维码 和 而二维码解析(8-20190129) 文章目录: 一.二维码介绍 二. 就是为了好玩所以想搞一下二维码,"好玩",少年醒醒,不要骗自己啦,起 ...

  9. 互联网 4 大发明之二维码,你如何使用 Python 生成二维码?

    阅读文本大概需要 8 分钟. 新时代,人们有人信新的追求,自然而然会有新发明的诞生.去年,在"一带一路"国际合作高峰论坛举行期间, 20 国青年投票选出中国的"新四大发明 ...

最新文章

  1. 如何防止apk程序被反编译
  2. JavaScript实现heapsort堆排序算法(附完整源码)
  3. mlx rdma网卡指标参数简介
  4. Android插件化技术调研
  5. faster-rcnn tensorflow windows demo运行
  6. Idea tomcat控制台日志乱码
  7. oracle数据库xsb创建,在Linux下安装oracle数据库
  8. 软件开发模型-快速原型模型
  9. 怎么设置计算机用户账户和密码,电脑上怎么设置wifi用户名和密码
  10. 未明学院:大学四年应当如何度过,才算不辜负?
  11. SAP License Keys申请和导入
  12. 苹果5越狱教程_iOS 13.3.1 checkra1n 手机越狱?不用电脑也行
  13. prompt learning
  14. 元宇宙虚拟人物风格形象应用场景制作
  15. Spring学习(二)—— 对象创建方式及依赖注入
  16. WARN Error while fetching metadata with correlation id 1 : {first=LEADER_NOT_AVAILABLE} (org.apache.
  17. 以太网交换芯片及PHY处理相关
  18. 电子商务的概念及应用
  19. ReadInfo(周考1)
  20. js滑动操作之-pageYOffset,scrollTop,offsetHeight,scrollHeight

热门文章

  1. 面向创意人士:全新的LaCie 2big Dock Thunderbolt 3来了!
  2. UNP 学习笔记(一):简介
  3. 计算机毕业设计各种题目总结
  4. Openid是什么,与unionid的区别
  5. openstack 命令行管理十八 - instance管理 (备忘)
  6. 数学竞赛倒计时13天_曲线积分和多元函数复合求导
  7. Python-OpenCV中的cv2.inpaint()函数
  8. opencv图像修补-inpaint函数
  9. 视频转文字如何操作?几种方法带你了解如何视频转文字
  10. 看这里,你要的快速、批量PDF加水印工具!