python自动标注autocad坐标_python 可视化 二维坐标标注等等
基本画图操作:
import matplotlib.pyplot as plt
import numpy as np
x = 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 np
x = 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 np
x = 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 np
x = np.linspace(-3,3,50)
y = 2*x+1
plt.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()
(1)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 np
x = np.linspace(-3,3,50)
y = 0.1*x
plt.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自动标注autocad坐标_python 可视化 二维坐标标注等等相关推荐
- python 可视化 二维坐标标注等等
python 可视化 二维坐标标注等等 - 蔡军帅 - 博客园https://www.cnblogs.com/caiyishuai/p/9607250.html 大佬的分享,在这里方便自己总结学习,因 ...
- python 二维数组元素返回二维坐标_python – 从二维数组中返回生成器而不是位置列表...
我昨天正在进行一场游戏,我必须遍历一个二维阵列并找到标记为"d"的任何单元格的位置(其中单元格表示为" – "表示空白,"d"表示为脏). ...
- python 随机获取数组元素_Python创建二维数组的正确姿势
List (列表)是 Python 中最基本的数据结构.在用法上,它有点类似数组,因为每个列表都有一个下标,下标从 0 开始.因此,我们可以使用 list[1] 来获取下标对应的值.如果我们深入下列表 ...
- java 课后习题 二维坐标距离 三角形判断等
知识点: 1.三角形的判断公式 两边之和大于第三边 2.二维坐标两点距离公式 根号[(x1-x2)平方+(y1-y2)平方] 3.JAVA Math.pow(变量,指数); 的运用 4.JAVA Ma ...
- 【JAVA 第四章 流程控制语句】课后习题 二维坐标距离 三角形判断等
知识点: 1.三角形的判断公式 两边之和大于第三边 2.二维坐标两点距离公式 根号[(x1-x2)平方+(y1-y2)平方] 3.JAVA Math.pow(变量,指数); 的运用 4.JAVA Ma ...
- python函数图像平移_旋转、缩放和平移二维坐标?
下面是一个关于矩阵的解决方案(这对于这种计算是有意义的,最后,二维坐标是一列的矩阵!)我是说 缩放非常简单,只需将矩阵的每个元素乘以缩放因子即可:scaled = copy.deepcopy(orig ...
- 希伯特数值与二维坐标的相互转换(python)
希伯特曲线具体干什么的,就不多说了,直接上代码! class Hilbert:# n 行列数def __init__(self, n ):self.n = ndef rot(self, xy, rx, ...
- 在Ubuntu 16.04.5 LTS上使用python第三方库QRCode 6.0生成二维码实录
简介 二维码简称 QR Code(Quick Response Code),学名为快速响应矩阵码,是二维条码的一种,由日本的 Denso Wave 公司于 1994 年发明.现随着智能手机的普及,已广 ...
- python 全栈开发,Day128(创建二维码,扫码,创建玩具的基本属性)
python 全栈开发,Day128(创建二维码,扫码,创建玩具的基本属性) 昨日内容回顾 1.app播放音乐plus.audio.createPlayer(文件路径/URL)player.play( ...
最新文章
- 有源汇上下界最小费用可行流 ---- P4553 80人环游世界(拆点 + 有源汇上下界最小费用可行流)
- Linux查看可执行文件的各个段:.BSS,.TEXT,.DATA的大小
- 关于肥胖和美国为什么那么多胖子
- DOS命令下Javac命令不能执行原因
- java中调用_如何获取Java中的调用方类
- 从 0 搭建一个工业级推荐系统
- Kafka Broker常用配置详解
- 常用SQL语句整理及示例
- vsCode常用插件
- 05JavaScript输出
- php 获取搜索引擎,php获取搜索引擎关键字来源(支持百度、谷歌等搜索引擎)的函数...
- 中文冒号vs英文冒号
- c语言pow函 新闻,c语言pow函数(C语言pow函数)
- Android 插件化换肤 思路及实现
- 何谓差模信号?何谓共模信号?
- 心理测评软件php mysql_心理测量软件_心理测评系统
- 云场景实践研究第40期:网聚宝
- 虚拟机 CentOS7 SecureCRT连接 CentOS连接不了网问题
- [翻译]位运算暗黑魔导书
- Flink消费kafka,某partition突然从头开始消费,yarn部署,无报错,很奇怪
热门文章
- 林丹推动技术革命 五项第一独步天下
- 事务注解错误范例org.apache.ibatis.session.defaults.DefaultSqlSession
- eclipse 抛 error: could not create the java virtual machine.Error: A fatal exception has occurred解决方法
- arcgis api 4.x加载天地图(经纬度和墨卡托投影)(一篇文章搞透天地图加载)
- Nginx+mongrel部署Rails应用
- 解析json格式请求返回500状态码的异常
- Scratch少儿编程与游戏:狙击黑蝙蝠
- java后台判断请求来自移动端访问还是PC端访问
- java 字符串判空_java判断字符串String是否为空问题浅析
- nexus7二代刷Linux,大饱眼福: Nexus 7二代全拆解