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 设置注释文字偏移量
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 可视化 二维坐标标注等等的更多相关文章
- 从Scratch到Python——Python生成二维码
# Python利用pyqrcode模块生成二维码 import pyqrcode import sys number = pyqrcode.create('从Scratch到Python--Pyth ...
- 二维坐标的平移,旋转,缩放及matlab实现
本文结合matlab 软件解释二维坐标系下的平移,旋转,缩放 首先确定点在二维坐标系下的表达方法,使用一个1*3矩阵: Pt = [x,y,1] 其中x,y 分别为点的X,Y坐标,1为对二维坐标的三维 ...
- UVALive 5102 Fermat Point in Quadrangle 极角排序+找距离二维坐标4个点近期的点
题目链接:点击打开链接 题意: 给定二维坐标上的4个点 问: 找一个点使得这个点距离4个点的距离和最小 输出距离和. 思路: 若4个点不是凸4边形.则一定是端点最优. 否则就是2条对角线的交点最优,能 ...
- OpenGL屏幕二维坐标转化成三维模型坐标
我们把OpenGL里模型的三维坐标往二维坐标的转化称为投影,则屏幕上的二维坐标往三维坐标转化则可以称为反投影,下面我们来介绍一下反投影的方法. 主要是gluUnProject函数的使用,下面是代码: ...
- 有关python下二维码识别用法及识别率对比分析
最近项目中用到二维码图片识别,在python下二维码识别,目前主要有三个模块:zbar .zbarlight.zxing. 1.三个模块的用法: #-*-coding=utf-8-*- import ...
- Win窗口坐标二维坐标与OpenGl的世界坐标系的之间的相互转换
Win窗口坐标二维坐标与OpenGl的世界坐标系的转换 几何处理管线擅长于使用视图和投影矩阵以及用于裁剪的视口把顶点的世界坐标变换为窗口坐标. 但是,在有些情况下,需要逆转这个过程.一种常见的情形是: ...
- 用python生成二维码
Python生成二维码,可以使用qrcode模块, github地址 我是搬运工 首先安装, 因为打算生成好再展示出来,所以用到Pillow模块 pip install qrcode pip inst ...
- Python 实现二维码生成和识别
今天突然想给自己自己做个头像,然后还是二维码的形式,这样只要扫一扫就可以访问我的主页.然后就开始自己的苦逼之路... 其实实现二维码java,c#,C++等都可以实现:由于自己正在学python,所以 ...
- 使用 Python 生成二维码
在“一带一路”国际合作高峰论坛举行期间, 20 国青年投票选出中国的“新四大发明”:高铁.扫码支付.共享单车和网购.其中扫码支付指手机通过扫描二维码跳转到支付页面,再进行付款.这种新的支付方式,造就二 ...
随机推荐
- C++ primer 第四版 练习3.13,3.14
读一组整数到 vector 对象,计算并输出每对相邻元素的 和.如果读入元素个数为奇数,则提示用户后一个元素 没有求和,并输出其值. vector<int> ivec; int ival; ...
- css 兼容 各类手机的写法 待续
@media (device-height:480px) and (-webkit-min-device-pixel-ratio:2){/* 兼容iphone4/4s */ .class{} } @m ...
- 配置ssh互信的一个小问题记录
在我们安装集群软件时,经常需要配置机器之间的互信,每个人也有一套自己熟悉的方法. 但是在今天配置互信过程中,发现操作过程还是一样,但是就是不能互信,通过查找资料解决了,做一下记录. 我经常使用的方式: ...
- K - Strange Country II 暴力dfs判断有向图是否连通//lxm
You want to visit a strange country. There are n cities in the country. Cities are numbered from 1 t ...
- Qemu编译qemu-system-arm
/********************************************************************************* * Qemu编译qemu-syst ...
- 20155117王震宇 2016-2017-2 《Java程序设计》第七周学习总结
教材学习内容总结 时间度量 格林尼治标准时间(GMT):现在GMT已不作为标准时间使用. 世界时(UT):借助观测远方星体跨过子午线而得,受地球自转速度影响. 国际原子时(TAI):铯原子辐射振动幅度 ...
- js三级联动
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- 状压dp2
2018年全国多校算法寒假训练营练习比赛(第二场) https://www.nowcoder.com/acm/contest/74/F 上一篇状压dp例题由于每个位置都含有一个非负数,所以不需要判断能 ...
- hdu1224 dp(dp + 栈/父亲数组记录路径)
题意:给定 n 个城市的有趣度,并给出可以从那些城市飞到那些城市.其中第一个城市即起始城市同样也作为终点城市,有趣度为 0,旅行途中只允许按有趣度从低到高旅行,问旅行的有趣度最大是多少,并输出旅行路径 ...
- 在Docker中运行crontab
在把自己的项目通过Docker进行打包时,由于项目中用到了crontab,不过使用到的基础镜像python:3.6-slim并没有安装这项服务,记录下在镜像中安装和配置crontab的过程. Dock ...