matlab 绘图 加横线竖线标志
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 绘图 加横线竖线标志相关的知识,希望对你有一定的参考价值。
如图,怎么在画图的时候在特定位置加上红圈里边的横线和竖线呢,退一步说,求出图中特定y值的时候,x的值?
1、下图Excel是Damon,Stefan,Elena,Catherines四人January-December的工资报表。
2、打开MATLAB,新建脚本(Ctrl+N),输入代码,读取Excel工资表,并绘制四人一月到十二月的工资线图。
3、保存和运行上述脚本,得到下图:Damon,Stefan,Elena,Catherines四人一月到十二月的工资线图。
4、在工作区(Work Place)能看到从Excel读取到的数据。
5、给第三步中的图形添图例,输入代码legend('Damon','Stefan','Elena','Catherines','location
','northwest')。保存和运行脚本就完成了。
参考技术A
1、打开软件,创建一个脚本文件,使用函数y=x,通过plot命令来绘制一条直线,输入如下代码。
2、可以看到已经绘制了一条增量为5,y=x的直线。
3、来绘制函数y = x^2,是一条曲线,在脚本文件输入如下代码。
4、我们可以看到已经绘制了一条曲线图。
5、来绘制正弦函数,y=sin(x),其中解释一下一些命令,title命令设置图表标题,grid on设置网格线,axis equal生成空格和比例因子绘图。
6、击运行,可以看到我们绘制出一条正弦函数曲线。
7、我们也可以绘制多个函数,这里通过y=sin(x),g=cos(x)来绘制正弦,余弦曲线。
8、看到我们已经成功绘制出了正弦,余弦曲线。
参考技术B
对于图中的曲线而言,由于y是单调变化的,可以使用插值的方法求对应指定y值的x坐标。
以下做一个简单的例子,希望对楼主有启发。
参考代码:
% 生成示例数据
x=0:0.1:2.2;
y=160./(1+exp(-6*(x-1)));
plot(x,y,'k')
% 画 85% 的横竖线
max_y = max(y);
y1 = 0.85 * max_y;
x1 = interp1(y,x,y1);
hold on
plot([x1 x1], [0 y1],'--k')
plot([0 x1], [y1 y1],'--k')
text(x1/2,y1,'85% 位','horiz','center','vert','bottom')注意,这里我把坐标系左下角的横纵坐标都理解成0,而且y必须是单调变化的,否则需要做一些适当的修改。
本回答被提问者和网友采纳
参考技术C
这完全是两个问题,第一问是绘图技巧,第二问是数值计算。
只回答第二问:代码举例如下
x = (0:0.01:10).';
y = func(x);
[~, idx] = min(abs(y-80)); %
result = x(idx);
上面代码首先列举出x在[0,10]上的所有y值,然后从中查找最接近80的y,进而找到对应的x。追问谢谢啦~~另外绘图技巧部分,能不能指点一下红圈里边的线怎么画出来呢
追答用line函数硬画吧。用法看帮助,只需要指出起始点结束点就可以了。
python 探测表格的横线和竖线,找到表格区域
# coding: utf-8
import cv2
class detectTable(object):
def __init__(self, image):
self.src_img = image
def run(self):
if len(self.src_img.shape) == 2: # 灰度图
gray_img = self.src_img
elif len(self.src_img.shape) ==3:
gray_img = cv2.cvtColor(self.src_img, cv2.COLOR_BGR2GRAY)
# thresh_img = cv2.adaptiveThreshold(~gray_img,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,15,-2)
thresh_img = cv2.Canny(gray_img, 50, 150, apertureSize=3)
h_img = thresh_img.copy()
v_img = thresh_img.copy()
scale = 20
h_size = int(h_img.shape[1]/scale)
h_structure = cv2.getStructuringElement(cv2.MORPH_RECT,(h_size,1)) # 形态学因子
h_erode_img = cv2.erode(h_img,h_structure,1)
h_dilate_img = cv2.dilate(h_erode_img,h_structure,1)
# cv2.imshow("h_erode",h_dilate_img)
v_size = int(v_img.shape[0] / scale)
v_structure = cv2.getStructuringElement(cv2.MORPH_RECT, (1, v_size)) # 形态学因子
v_erode_img = cv2.erode(v_img, v_structure, 1)
# cv2.imshow("v_erode_img",v_erode_img)
v_dilate_img = cv2.dilate(v_erode_img, v_structure, 1)
mask_img = h_dilate_img+v_dilate_img
joints_img = cv2.bitwise_and(h_dilate_img,v_dilate_img)
#在mask的基础上找边框
thresh1, contours1, hierarchy1 = cv2.findContours(h_dilate_img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
image_copy=self.src_img.copy()
i=1
predict_area=[]
for cnt in contours1:
x, y, w, h = cv2.boundingRect(cnt)
if h>10 and w>12 and h<self.src_img.shape[0]-5 and w<self.src_img.shape[1]-5:
predict_area.append((x-3,y-3,w+x+3,y+h+3))
# cv2.rectangle(image_copy, (x, y), (x + w, y + h), (0, 255, 0), 5) # blue
cv2.imwrite("test.jpg",image_copy)
cv2.imshow("h_dilate_img",h_dilate_img)
cv2.imshow("mask",mask_img)
cv2.imshow("image_copy",image_copy)
cv2.waitKey(0)
return predict_area
def main():
temp_image=cv2.imread("./000217.png")
cc=detectTable(temp_image).run()
print(cc)
if __name__ == '__main__':
main()
以上是关于matlab 绘图 加横线竖线标志的主要内容,如果未能解决你的问题,请参考以下文章
横线竖线处理
交通标志识别基于matlab GUI BP神经网络交通标志识别(带面板)含Matlab源码 1647期
交通标志识别基于matlab HOG特征结合BP神经网络交通标志识别含Matlab源码 2331期
交通标志识别基于matlab GUI BP神经网络交通标志识别系统(含语音报警)含Matlab源码 2240期
latex中表格横竖线条加粗?
R语言abline函数为图像添加竖线横线斜线回归线实战