坐标轴

R语言笔记之第三章

那年仲夏 提交于 2019-12-27 02:36:00
第三章 1图形参数 par() opar <- par(no.readonly=TRUE)##复制了一份当前参数 par(lty=2,pch=17) plot(dose,drugA,type="b") par(opar) 符号和线条 参数 描述 pch 符号类型 cex 符号大小 lty 线条类型 lwd 线条宽度 pch: 当pch取0~14时,其点为空心点,可以用col(颜色)参数设置其边框的颜色;   当pch取15~20时,其点是实心点,可以用col参数设置其填充的颜色;   当pch取21~25时,其点也是实心点,既可以用col参数设置边框的颜色,也可以用bg参数设置其内部的填充颜色 lty: 颜色 在R中,可通过颜色下标、颜色名称、十六进制、RGB、HSV来指定颜色 参数 描述 col 如col=c(“red”,“blue”)绘制三条线,1红,2蓝,3红 col.axis 坐标轴刻度文字颜色 col.lab 坐标轴标签颜色 col.main/col.sub 主/副标题颜色 fg/bg 前/背景色 文本属性 参数 描述 cex cex.anis 坐标轴刻度文字放大倍数 cex.lab 坐标轴标签放大倍数 cex.main/col.sub 主/副标题放大倍数 图形边界、图形大小 参数 描述 pin 英寸表示(宽、高) 2添加文本、自定义坐标轴和图例 标题 //ann

matplotlib 入门教程(一)

不想你离开。 提交于 2019-12-26 09:27:07
matplotlib 入门教程(一) 基本画图(线性) 一、MATLAB风格画图 #导入基本模块 import matplotlib.pyplot as plt import numpy as np #构造x的点,用于画图 x = np.linspace(0,10,100) #定义画布 fig = plt.figure() #创建2个子图中的第1个,设置坐标轴 plt.subplot(2,1,1) #(行,列,子图编号) plt.plot(x,np.sin(x),'-') #创建2个子图中的第2个,设置坐标轴 plt.subplot(2,1,2) plt.plot(x,np.cos(x),'--') 二、面向对象画图 #导入基本模块 import matplotlib.pyplot as plt import numpy as np #构造x的点,用于画图 x = np.linspace(0,10,100) #定义2个对象画布 fig,ax = plt.subplots(2) #创建2个子图中的第1个,设置坐标轴 ax[0].plot(x,np.sin(x)) #创建2个子图中的第2个,设置坐标轴 ax[1].plot(x,np.cos(x)) 图形基本属性 1.颜色 plt.plot(x,np.sin(x),color='red') #color 属性值有如下几种形式:

matplotlib画图与图像合成

喜夏-厌秋 提交于 2019-12-26 00:38:32
@[TOC]以图像为背景matplotlib画图 本文作用 首先,欢迎各位大佬来浏览小弟写的博客。今天小弟遇到一个问题,原来的输出结果不能直观的反映一些问题(与实际脱轨),为了方便数学模型输出结果与实际对应,需要将matplotlib输出的结果 以实际照片为背景 首先面对这个需求,想要用matplotlib直接实现是最方便的。但是奈何不知道怎么样才能使matplotlib做到以真实图片为背景进行画图,当然如果opencv用的好的话 可以直接用。我是觉得用opencv一根一根画比较麻烦,所以就想了很多办法,最终就想到了matplotlib输出图片,与原来的图像叠加来实现。 先上效果图把 花了两三个小时才完成这一张图,遇到问题良多。废话不多说,下面说一下正确做法 然后在列举一下小弟踩的坑给兄弟们指个路。 from PIL import Image import math img1 = Image.open('./data/strack.jpg') img2 = Image.open('./data/12_25.png') img1 = img1.convert('RGBA') img2 = img2.convert('RGBA') if not img.size==img2.size: img2 = img2.resize((img1.size),Image.BILINEAR) img

PCA

∥☆過路亽.° 提交于 2019-12-23 08:30:17
1.原理:https://blog.csdn.net/program_developer/article/details/80632779 PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法。 PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。其中, 第一个新坐标轴 选择是原始数据中 方差最大的方向 , 第二个新坐标轴 选取是 与第一个坐标轴正交的平面中使得方差最大 的, 第三个轴是与第1,2个轴正交的平面中方差最大的 。依次类推,可以得到n个这样的坐标轴。通过这种方式获得的新的坐标轴,我们发现, 大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0 。于是,我们可以忽略余下的坐标轴, 只保留前面k个含有绝大部分方差的坐标轴 。 这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。 如何得到这些包含最大差异性的主成分方向呢? 通过 计算数据矩阵的协方差矩阵 ,然后得到协方差矩阵的特征值特征向量,选择特征值最大(即方差最大)的k个特征所对应的特征向量组成的矩阵。这样就可以将数据矩阵转换到新的空间当中,实现数据特征的降维。 得到协方差矩阵的特征值特征向量有两种方法:特征值分解协方差矩阵、奇异值分解协方差矩阵

Matplotlib三层结构

老子叫甜甜 提交于 2019-12-20 11:12:16
Matplotlib三层结构 容器层: 主要由Canvas、Figure、Axes组成。 Canvas是位于最底层的系统层,在绘图的过程中充当画板的角色,即放置画布(Figure)的工具。 Figure是Canvas上方的第一层,也是需要用户来操作的应用层的第一层,在绘图的过程中充当画布的角色。 Axes是应用层的第二层,在绘图的过程中相当于画布上的绘图区的角色。 Figure:指整个图形(可以通过plt.figure()设置画布的大小和分辨率等) Axes(坐标系):数据的绘图区域 Axis(坐标轴):坐标系中的一条轴,包含大小限制、刻度和刻度标签 注意点: 一个figure(画布)可以包含多个axes(坐标系/绘图区),但是一个axes只能属于一个figure。 一个axes(坐标系/绘图区)可以包含多个axis(坐标轴),包含两个即为2d坐标系,3个即为3d坐标系 。 辅助显示层 辅助显示层为Axes(绘图区)内的除了根据数据绘制出的图像以外的内容,主要包括Axes外观(facecolor)、边框线(spines)、坐标轴(axis)、坐标轴名称(axis label)、坐标轴刻度(tick)、坐标轴刻度标签(tick label)、网格线(grid)、图例(legend)、标题(title)等内容。 该层的设置可使图像显示更加直观更加容易被用户理解

Highcharts配置

余生长醉 提交于 2019-12-20 06:39:29
官网使用教程 官网API文档 可配置选项 在了解可配置选项前,我们一定要知道图表都是有哪些部分组成。 一般情况下,Highcharts 包含 标题(Title) 、 坐标轴(Axis) 、 数据列(Series) 、 数据提示框(Tooltip) 、 图例(Legend) 、 版权标签(Credits) 等,另外还可以包括 导出功能按钮(Exporting) 、 标示线(PlotLines) 、 标示区域(PlotBands) 、 数据标签(dataLabels) 等。 Highcharts 基本组成部分如下图所示: 1. 标题(Title) 图表标题,包含标题和副标题(subTitle),其中副标题是非必须的 。 2. 坐标轴(Axis) 坐标轴包含x轴(xAxis)和y轴(yAxis)。通常情况下,x轴显示在图表的底部,y轴显示在图表的左侧。多个数据列可以共同使用同一个坐标轴,为了对比或区分数据,Highcharts提供了多轴的支持。 3. 数据列(Series) 数据列即 图表上一个或多个数据系列 ,比如曲线图中的一条曲线,柱状图中的一个柱形。 4. 数据提示框(Tooltip) 当鼠标悬停在某点上时,以框的形式提示该点的数据,比如该点的值、数据单位等。 数据提示框内提示的信息 完全可以通过 格式化函数动态指定 。 5. 图例(Legend) 图例是图表中用不同形状、颜色

三维图形变换

混江龙づ霸主 提交于 2019-12-20 05:35:08
三维图形变换 是在二维方法基础上增加了对 z 坐标的考虑得到的。与二维变换类似,引入齐次坐标表示,即:三维空间中某点的变换可以表示成点的齐次坐标与四阶的三维变换矩阵相乘。 一、平移变换 二.比例变换 例如:对长方体进行比例变换, 三、旋转变换 跟二维的相同 四、对称变换 有关于坐标平面、坐标轴的对称变换 (1)关于坐标平面的对称 绕哪个面变换,那个面不变 变换矩阵为: 其它均类似 (2)关于坐标轴变换 6.2 投影变换 投影变换就是把三维物体投射到投影面上得到二维平面图形 两种投影法的 本质区别 在于:透视投影的投影中心到投影面之间的距离是有限的;而另一个的距离是无限的。 一、中心(透视)投影 特点:投影线均通过投影中心,物体的投影视图由计算投影线与观察平面交点而得 在投影中心相对投影面确定的情况下,空间的一个点在投影面上只存在唯一一个投影。 透视投影生成真实感视图,但不保证相关比例。 二、平行投影 1 、把透视投影的中心移至无穷远处,则各投影线称为相互平行的直线,这种投影 2 、分为正投影和斜投影 3、特点:保持物体的有关比例不变 三、平面集合投影的分类 6.3 三视图 一、 1 、根据投影面与坐标轴的夹角可分为两类:三视图和正轴侧图。 当投影面与某一坐标轴垂直时,得到的投影为三视图,这是投影方向与这个坐标轴的方向一致;否则,得到的投影为正轴侧图 2、 三视图包括主、侧

视频处理学习笔记(四)——几种常见的时域滤波

好久不见. 提交于 2019-12-16 23:17:09
时域与频域 视频处理归根到底还是得对图像进行处理,常见的图像处理可以大致分为时域上处理和频域上处理,为此,我们先了解一下什么是时域,什么是频域 时域是真实世界,是唯一真实存在的域,自变量是时间,即横轴是时间,纵轴是信号的变化,其动态信号x(t)是描述信号在不同时刻取值的函数; 频域最重要的性质就是它不是真实的,仅仅是一个数学构造,自变量是频率,即横轴是频率,纵轴是该频率信号的幅度,也就是通常说的频谱图。 更多关于时域与频域的请阅读以下文章 - 什么是时域和频域 - 信号时域频域及转换 相关图像噪声可以 点击这里 均值滤波 均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标像素为中心的周围8个像素,构成一个滤波模板,即去掉目标像素本身),再用模板中的全体像素的平均值来代替原来像素值 通俗的所就是用选定区域的平均值来代替该点的像素值,比如选定的区域是(3,3)的,不考虑边界,第一个区域就是(1+2+1+1+2+2+5+7+6)/9=3,所以该点的值为3。边界值不变(如果考虑边界要进行补零操作),显然这有点类似卷积,给定一个3 3(当然也可以是其他大小的区域,一般都是3 3)的卷积核如下 这就可以实现均值滤波了,当然,可以更换卷积核来实现加权平均的效果,根据上面的原理可以自己编写均值滤波的函数,网上已有很多博客实现了,这里就不在多说了

笔试坐标轴移动问题

你说的曾经没有我的故事 提交于 2019-12-14 02:38:55
今天同学笔试遇到一道神奇的题 题目 给定一个一维坐标轴,从正无穷到负无穷。假如你现在位于坐标O上,你每次可以向左或者向右移动,但有一个条件,那就是第i次移动时,移动的距离必须是i。请计算至少需要移动几次能到达给定的坐标s。 例:当x是3时,需要两步,第一步右移1,第二步右移2。 当x是4时,需要三步,第一步左移1,第二步右移2,第三步右移3。 思路 此题主要是一种思想。 最快的一定是全部左移或右移到达终点例如数字3。若无法全部左移到达终点,则需要某一步或两步往相反方向移动。 假设坐标s是为非负数(即便是负数也可以将到达相反数的操作全部反向),连续i次右移到达 c o u n t = i ( i + 1 ) 2 count=\frac{i(i+1)}{2} c o u n t = 2 i ( i + 1 ) ​ 格。 本题主要有以下几种情况: ∣ s ∣ = i ( i + 1 ) 2 |s| = \frac{i(i+1)}{2} ∣ s ∣ = 2 i ( i + 1 ) ​ 移动 i 次 ∣ s ∣ > i ( i + 1 ) 2 |s| > \frac{i(i+1)}{2} ∣ s ∣ > 2 i ( i + 1 ) ​ 且 ( c o u n t − ∣ x ∣ ) m o d 2 = 0 \small(count-|x|)mod2=0 ( c o u n t − ∣ x ∣

ggplot2——坐标系篇(转载)

蹲街弑〆低调 提交于 2019-12-13 11:51:14
目录: 初始图样 如何修改坐标轴的显示范围 如何修改坐标轴的标签(内容、大小、字体、颜色、加粗、位置、角度) 如何修改坐标轴的刻度标签(内容) 如何修改坐标轴的刻度标签(大小、字体、颜色、加粗、位置、角度) 如何修改坐标轴的刻度间隔 如何去掉网格线 如何去掉刻度标签 如何去掉刻度线 如何去掉外层边框 如何再加上X轴、Y轴(无刻度、无标签) (更多内容请见: R、ggplot2、shiny 汇总 ) 初始图样: library (ggplot2) dt = data .frame ( A = 1:10, B = c (2,15,6,18,9,7,13,15,10,3) , C = c (' A ',' C ',' A ',' B ',' C ',' D ',' A ',' C ',' D ',' B ') ) p = ggplot(dt, aes(x = A , y = B , color = C , group = factor( 1 ))) + geom_point(size = 3.8 ) + geom_line(size = 0.8 ) + geom_text(aes(label = B , vjust = 1.1 , hjust = - 0.5 , angle = 45 ), show_guide = FALSE ) ## 添加点的数值 p 1 2 3 4 5 6 7 8