活动介绍

-B 选项在设置边框属性时的语法为: -B[axes][+b][+gfill][+i[val]][+n][+olon/lat][+ssubtitle][+ttitle][+w[pen]][+xfill][+yfill][+zfill] 其中: axes 控制显示底图的哪几条边,具体用法在下面进一步介绍 +ttitle 指定当前底图的标题。该标题位于底图上方的中间位置。标题的文本属性由 FONT_TITLE 控制,标题与上边框之间的距离由 MAP_TITLE_OFFSET 控制 +ssubtitle (需要 +ttitle 子选项)指定底图副标题,位于标题下方。副标题的文本属性由 FONT_SUBTITLE 控制 +gfill 为底图内部填充颜色,见 填充;在 3-D 图中可用于填充两个背景墙 +n 表示不绘制边框 +i[val] 对于某些投影方式,某条轴可能不会被绘制或标注(比如 360 度的方位投影地图没有纬度轴,全球 Hammer 投影没有经度轴),使用该子选项可以强制标注一个 val 经线或纬线。[ val 默认值为 0 ] +olon/lat 指定网格线的参考点。默认情况下,网格线是以北极点作为参考的,如果你想要以另一个点作为参考绘制倾斜的网格线,则可以使用 +o 子选项 MAP_TITLE_OFFSET 图标题的底部与轴标注(或轴标签)的顶部之间的距离 [14p] 。可以设置为负数进一步减小距离。 MAP_HEADING_OFFSET 子图标题的顶部与总标题的底部之间的距离 [18p] 其它参数 MAP_DEFAULT_PEN 设置所有与 -W 选项相关的画笔属性的默认值 [0.25p,black] 在参数值的前面加上 + 可以覆盖其他 MAP_*_PEN 相关参数中的颜色。 MAP_ORIGIN_X 新绘图在纸张上的原点的X坐标(仅适用于GMT经典模式)[72p] MAP_ORIGIN_Y 新绘图在纸张上的原点的Y坐标(仅适用于GMT经典模式)[72p] MAP_LOGO 是否在左下角绘制GMT时间戳 [false] 可以取 true|false,等效于在命令行中使用 -U 选项。 我想要设置-B+t的标题距离

时间: 2025-03-29 15:05:22 浏览: 29
### 如何通过 `MAP_TITLE_OFFSET` 调整 GMT 中 `-B+t` 标题与边框之间的距离 在 GMT(Generic Mapping Tools)中,可以通过设置环境变量 `MAP_TITLE_OFFSET` 来控制标题与边框之间的垂直间距。此参数定义了标题相对于边框的位置偏移量,默认单位为厘米 (cm),也可以指定其他单位如英寸 (`in`) 或点 (`p`)。 以下是具体实现方法: #### 设置 `MAP_TITLE_OFFSET` 可以使用以下方式来调整标题位置: ```bash gmt set MAP_TITLE_OFFSET 1.5c ``` 上述命令将标题的垂直偏移量设置为 1.5 厘米[^1]。如果希望更精确地控制布局,还可以尝试不同的数值或单位。 #### 结合 `-B` 参数使用 当绘制地图时,通常会用到 `-B` 参数来自定义边界、刻度和标题等内容。例如: ```bash gmt psbasemap -R0/10/0/10 -JX10c/10c -Ba2f1g1:"Longitude":/"Latitude":+t"My Title" -P > map.ps ``` 在此基础上,若已设置了 `MAP_TITLE_OFFSET` 的值,则标题 `"My Title"` 将按照所设定的偏移量显示。 #### 使用 Python 和 PyGMT 实现相同功能 对于希望通过 Python 编程完成的地图制作任务,PyGMT 提供了一种便捷的方式。例如: ```python import pygmt fig = pygmt.Figure() pygmt.config(MAP_TITLE_OFFSET="1.5c") # 配置标题偏移量 fig.basemap(region=[0, 10, 0, 10], projection="X10c/10c", frame=["a2f1g1+", "x+lon", "y+lat", "+tMy Title"]) fig.show() ``` 以上代码片段展示了如何利用 PyGMT 库中的配置函数 `config()` 方法动态修改 `MAP_TITLE_OFFSET` 并应用至图表生成过程[^3]。 --- #### 注意事项 - 如果未显式声明 `MAP_TITLE_OFFSET`,则采用其默认值。 - 不同版本间的 GMT 行为可能略有差异,请参照官方文档确认当前使用的软件版本特性。
阅读全文

相关推荐

% --- Executes on button press in calculate. function calculate_Callback(hObject, eventdata, handles) % hObject handle to calculate (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) set(handles.state,'string','程序正在运行......'); ZXJO=str2num(get(handles.ZXJO,'string')); ZXJT=str2num(get(handles.ZXJT,'string')); DZPBJ=str2num(get(handles.DZPBJ,'string')); JYBJ=str2num(get(handles.JYBJ,'string')); PZJO=str2num(get(handles.PZJO,'string')); PZJT=str2num(get(handles.PZJT,'string')); DCDO=str2num(get(handles.DCDO,'string')); DJD=str2num(get(handles.DJD,'string')); DCDT=str2num(get(handles.DCDT,'string')); SXJDO=str2num(get(handles.SXJDO,'string')); SXJDT=str2num(get(handles.SXJDT,'string')); JPJDO=str2num(get(handles.JPJDO,'string')); JPJDT=str2num(get(handles.JPJDT,'string')); JPCDO=str2num(get(handles.JPCDO,'string')); JPCDT=str2num(get(handles.JPCDT,'string')); CPJDO=str2num(get(handles.CPJDO,'string')); CPJDT=str2num(get(handles.CPJDT,'string')); CPCDO=str2num(get(handles.CPCDO,'string')); CPCDT=str2num(get(handles.CPCDT,'string')); SZPBJ=str2num(get(handles.SZPBJ,'string')); syms t; t=0:0.0001:1.0002; tou=0.0001; N=size(t,2); if get(handles.zhengxian,'value')==1 f1=t-sin(180.*t*pi/180)/pi; f2=1-t-(sin(180.*t*pi/180))/pi; else f1=1-cos((180.*t/2)*pi/180); f2=1-sin((180.*t/2)*pi/180); end q1=-ZXJO.*sin((-SXJDO/2+SXJDO.*t-180+DJD)*pi/180)-DZPBJ.*sin((-180-3*SXJDO/4+3*SXJDO.*t/2-180+DJD)*pi/180)-JYBJ.*sin((180-DJD)*pi/180); q2=ZXJO.*cos((-SXJDO/2+SXJDO.*t-180+DJD)*pi/180)+DZPBJ.*cos((-180-3*SXJDO/4+3*SXJDO.*t/2-180+DJD)*pi/180)-JYBJ.*cos((180-DJD)*pi/180); a=atan(q1./q2)*180/pi; q3=DCDO.*sin((180-a)*pi/180); q4=JYBJ+DCDO.*cos((180-a)*pi/180); b=atan(q3./q4)*180/pi; r=JYBJ.*cos(b*pi/180)+DCDO.*cos((180-a-b)*pi/180); theta=90-PZJO+SXJDO/2-SXJDO.*t+b; axes(handles.axes1); ax1=handles.axes1; cla(ax1); polar(theta*pi/180,r,'-b'); hold on; hold on; polar([0:0.01:2*pi],ones(size(0:0.01:2*pi))*400,'b-'); Store_1(:,1)=[r.*cos(theta*pi/180)]'; Store_1(:,2)=[r.*sin(theta*pi/180)]'; save Store_1.xls -ascii Store_1 q1=-ZXJO.*sin((SXJDO/2+CPJDO.*t-180+104.93)*pi/180)-(DZPBJ+CPCDO.*f1).*sin((-180+3*SXJDO/4+3*CPJDO.*t/2-180+104.93)*pi/180)+JYBJ.*sin((-180+104.93)*pi/180); q2=ZXJO.*cos((SXJDO/2+CPJDO.*t-180+104.93)*pi/180)+(DZPBJ+CPCDO.*f1).*cos((-180+3*SXJDO/4+3*CPJDO.*t/2-180+104.93)*pi/180)-JYBJ.*cos((-180+104.93)*pi/180); a=atan(q1./q2)*180/pi; q3=DCDO.*sin((180-a)*pi/180); q4=JYBJ+DCDO.*cos((180-a)*pi/180); b=atan(q3./q4)*180/pi; r=JYBJ.*cos(b*pi/180)+DCDO.*cos((180-a-b)*pi/180); theta=90-PZJO-SXJDO/2-CPJDO.*t+b; axes(handles.axes1); polar(theta*pi/180,r,'-b'); Store_2(:,1)=[r.*cos(theta*pi/180)]'; Store_2(:,2)=[r.*sin(theta*pi/180)]'; save Store_2.txt -ascii Store_2 n=size(t,2); for i=1:n-1 dr(i)=(r(i+1)-r(i))/tou; end for i=1:n-2 d2r(i)=(dr(i+1)-dr(i))/tou; end m=size(t,2); for j=1:m-1 tr(j)=(theta(j+1)-theta(j))/tou; end for j=1:m-2 t2r(j)=(tr(j+1)-tr(j))/tou; end w1=r(end-2); w3=dr(end-1); w5=d2r(end); y1=theta(end-2); y3=tr(end-1); y5=t2r(end); q1=ZXJT.*sin((-SXJDT/2-JPJDT+JPJDT.*t)*pi/180)+(SZPBJ+JPCDT.*f2).*sin((180-3*SXJDT/4-3*JPJDT/2+3*JPJDT.*t/2)*pi/180); q2=ZXJT.*cos((-SXJDT/2-JPJDT+JPJDT.*t)*pi/180)+(SZPBJ+JPCDT.*f2).*cos((180-3*SXJDT/4-3*JPJDT/2+3*JPJDT.*t/2)*pi/180)-JYBJ; a=atan(q1./q2)*180/pi; q3=DCDO.*sin((DJD+a)*pi/180); q4=JYBJ+DCDO.*cos((DJD+a)*pi/180); b=atan(q3./q4)*180/pi; r=JYBJ.*cos(b*pi/180)+DCDO.*cos((DJD+a-b)*pi/180); theta=-90-PZJT+SXJDT/2+JPJDT-JPJDT.*t+b; axes(handles.axes1); polar(theta*pi/180,r,'-b'); Store(2*N+1:3*N,1)=[r.*cos(theta*pi/180)]'; Store(2*N+1:3*N,2)=[r.*sin(theta*pi/180)]'; n=size(t,2); for i=1:n-1 dr(i)=(r(i+1)-r(i))/tou; end for i=1:n-2 d2r(i)=(dr(i+1)-dr(i))/tou; end m=size(t,2); for j=1:m-1 tr(j)=(theta(j+1)-theta(j))/tou; end for j=1:m-2 t2r(j)=(tr(j+1)-tr(j))/tou; end w2=r(1); w4=dr(1); w6=d2r(1); y2=theta(1); y4=tr(1); y6=t2r(1); syms x C1=[x.^5 x.^4 x.^3 x.^2 x 1]; C2=[5*x.^4 4*x.^3 3*x.^2 2*x 1 0]; C3=[5*4*x.^3 4*3*x.^2 3*2*x 2 0 0]; A=[subs(C1,0);subs(C1,1);subs(C2,0);subs(C2,1);subs(C3,0);subs(C3,1)]; w=[w1 w2 w3 w4 w5 w6]'; e=inv(A)*w; r=e(1).*t.^5+e(2).*t.^4+e(3).*t.^3+e(4).*t.^2+e(5).*t+e(6); e_r=e; y=[y1 y2 y3 y4 y5 y6]'; e=inv(A)*y; theta=e(1).*t.^5+e(2).*t.^4+e(3).*t.^3+e(4).*t.^2+e(5).*t+e(6); e_theta=e; axes(handles.axes1); polar(theta*pi/180,r,'-b'); Store(3*N+1:4*N,1)=[r.*cos(theta*pi/180)]'; Store(3*N+1:4*N,2)=[r.*sin(theta*pi/180)]'; q1=-ZXJT.*sin((-SXJDT/2+SXJDT.*t-180+DJD)*pi/180)-SZPBJ.*sin((180-3*SXJDT/4+3*SXJDT.*t/2-180+DJD)*pi/180)+JYBJ.*sin((-180+DJD)*pi/180); q2=ZXJT.*cos((-SXJDT/2+SXJDT.*t-180+DJD)*pi/180)+SZPBJ.*cos((180-3*SXJDT/4+3*SXJDT.*t/2-180+DJD)*pi/180)-JYBJ.*cos((-180+DJD)*pi/180); a=atan(q1./q2)*180/pi; q3=DCDO.*sin((180-a)*pi/180); q4=JYBJ+DCDO.*cos((180-a)*pi/180); b=atan(q3./q4)*180/pi; r=JYBJ.*cos(b*pi/180)+DCDO.*cos((180-a-b)*pi/180); theta=-90-PZJT+SXJDT/2-SXJDT.*t+b; axes(handles.axes1); polar(theta*pi/180,r,'-b'); Store(4*N+1:5*N,1)=[r.*cos(theta*pi/180)]'; Store(4*N+1:5*N,2)=[r.*sin(theta*pi/180)]'; q1=-ZXJT.*sin((SXJDT/2+CPJDT.*t-180+DJD)*pi/180)-SZPBJ.*sin((180+3*SXJDT/4+3*CPJDT.*t/2-180+DJD)*pi/180)+JYBJ.*sin((-180+DJD)*pi/180); q2=ZXJT.*cos((SXJDT/2+CPJDT.*t-180+DJD)*pi/180)+SZPBJ.*cos((180+3*SXJDT/4+3*CPJDT.*t/2-180+DJD)*pi/180)-JYBJ.*cos((-180+DJD)*pi/180); a=atan(q1./q2)*180/pi; q3=DCDO.*sin((180-a)*pi/180); q4=JYBJ+DCDO.*cos((180-a)*pi/180); b=atan(q3./q4)*180/pi; r=JYBJ.*cos(b*pi/180)+DCDO.*cos((180-a-b)*pi/180); theta=-90-PZJT-SXJDT/2-CPJDT.*t+b; axes(handles.axes1); polar(theta*pi/180,r,'-b'); Store(5*N+1:6*N,1)=[r.*cos(theta*pi/180)]'; Store(5*N+1:6*N,2)=[r.*sin(theta*pi/180)]'; n=size(t,2); for i=1:n-1 dr(i)=(r(i+1)-r(i))/tou; end for i=1:n-2 d2r(i)=(dr(i+1)-dr(i))/tou; end m=size(t,2); for j=1:m-1 tr(j)=(theta(j+1)-theta(j))/tou; end for j=1:m-2 t2r(j)=(tr(j+1)-tr(j))/tou; end w1=r(end-2); w3=dr(end-1); w5=d2r(end); y1=theta(end-2); y3=tr(end-1); y5=t2r(end); q1=-ZXJO.*sin((-SXJDO/2-JPJDO+JPJDO.*t-180+DJD)*pi/180)-DZPBJ.*sin((-180-3*SXJDO/4-3*JPJDO/2+3*JPJDO.*t/2-180+DJD)*pi/180)+JYBJ.*sin((-180+DJD)*pi/180); q2=ZXJO.*cos((-SXJDO/2-JPJDO+JPJDO.*t-180+DJD)*pi/180)+DZPBJ.*cos((-180-3*SXJDO/4-3*JPJDO/2+3*JPJDO.*t/2-180+DJD)*pi/180)-JYBJ.*cos((-180+DJD)*pi/180); a=atan(q1./q2)*180/pi; q3=DCDO.*sin((180-a)*pi/180); q4=JYBJ+DCDO.*cos((180-a)*pi/180); b=atan(q3./q4)*180/pi; r=JYBJ.*cos(b*pi/180)+DCDO.*cos((180-a-b)*pi/180); theta=90-PZJO+SXJDO/2+JPJDO-JPJDO.*t+b-360; axes(handles.axes1); polar(theta*pi/180,r,'-b'); Store(6*N+1:7*N,1)=[r.*cos(theta*pi/180)]'; Store(6*N+1:7*N,2)=[r.*sin(theta*pi/180)]'; n=size(t,2); for i=1:n-1 dr(i)=(r(i+1)-r(i))/tou; end for i=1:n-2 d2r(i)=(dr(i+1)-dr(i))/tou; end m=size(t,2); for j=1:m-1 tr(j)=(theta(j+1)-theta(j))/tou; end for j=1:m-2 t2r(j)=(tr(j+1)-tr(j))/tou; end w2=r(1); w4=dr(1); w6=d2r(1); y2=theta(1); y4=tr(1); y6=t2r(1); syms x C1=[x.^5 x.^4 x.^3 x.^2 x 1]; C2=[5*x.^4 4*x.^3 3*x.^2 2*x 1 0]; C3=[5*4*x.^3 4*3*x.^2 3*2*x 2 0 0]; A=[subs(C1,0);subs(C1,1);subs(C2,0);subs(C2,1);subs(C3,0);subs(C3,1)]; w=[w1 w2 w3 w4 w5 w6]'; e=inv(A)*w; r=e(1).*t.^5+e(2).*t.^4+e(3).*t.^3+e(4).*t.^2+e(5).*t+e(6); e_r(:,2)=e; y=[y1 y2 y3 y4 y5 y6]'; e=inv(A)*y; theta=e(1).*t.^5+e(2).*t.^4+e(3).*t.^3+e(4).*t.^2+e(5).*t+e(6); e_theta(:,2)=e; axes(handles.axes1); polar(theta*pi/180,r,'-b'); Store(7*N+1:8*N,1)=[r.*cos(theta*pi/180)]'; Store(7*N+1:8*N,2)=[r.*sin(theta*pi/180)]'; q1=-ZXJO.*sin((-SXJDO/2+SXJDO.*t-180+DJD)*pi/180)-DZPBJ.*sin((-180-3*SXJDO/4+3*SXJDO.*t/2-180+DJD)*pi/180)-JYBJ.*sin((180-DJD)*pi/180); q2=ZXJO.*cos((-SXJDO/2+SXJDO.*t-180+DJD)*pi/180)+DZPBJ.*cos((-180-3*SXJDO/4+3*SXJDO.*t/2-180+DJD)*pi/180)-JYBJ.*cos((180-DJD)*pi/180); a=atan(q1./q2)*180/pi; P=ZXJO.*cos((-SXJDO/2+SXJDO.*t-180+DJD+a)*pi/180)+DZPBJ.*cos((-180-3*SXJDO/4+3*SXJDO.*t/2-180+DJD+a)*pi/180)-JYBJ.*cos((-180+DJD+a)*pi/180); q3=(P-DCDT).*sin((180-a-104.93)*pi/180); q4=JYBJ+(P-DCDT).*cos((180-a-DJD)*pi/180); b=atan(q3./q4)*180/pi; r=JYBJ.*cos(b*pi/180)+(P-DCDT).*cos((180-a-DJD-b)*pi/180); theta=90-PZJO+SXJDO/2-SXJDO.*t+b-360; axes(handles.axes1); polar(theta*pi/180,r,'-b'); Store(8*N+1:9*N,1)=[r.*cos(theta*pi/180)]'; Store(8*N+1:9*N,2)=[r.*sin(theta*pi/180)]'; q1=-ZXJO.*sin((SXJDO/2+CPJDO.*t-180+104.93)*pi/180)-(DZPBJ+CPCDO.*f1).*sin((-180+3*SXJDO/4+3*CPJDO.*t/2-180+104.93)*pi/180)+JYBJ.*sin((-180+104.93)*pi/180); q2=ZXJO.*cos((SXJDO/2+CPJDO.*t-180+104.93)*pi/180)+(DZPBJ+CPCDO.*f1).*cos((-180+3*SXJDO/4+3*CPJDO.*t/2-180+104.93)*pi/180)-JYBJ.*cos((-180+104.93)*pi/180); a=atan(q1./q2)*180/pi; P=ZXJO.*cos((SXJDO/2+CPJDO.*t-180+104.93+a)*pi/180)+(DZPBJ+CPCDO.*f1).*cos((-180+3*SXJDO/4+3*CPJDO.*t/2-180+104.93+a)*pi/180)-JYBJ.*cos((-180+104.93+a)*pi/180); q3=(P-DCDT).*sin((180-DJD-a)*pi/180); q4=JYBJ+(P-DCDT).*cos((180-DJD-a)*pi/180); b=atan(q3./q4)*180/pi; r=JYBJ.*cos(b*pi/180)+(P-DCDT).*cos((180-DJD-a-b)*pi/180); theta=90-PZJO-SXJDO/2-CPJDO.*t+b; axes(handles.axes1); polar(theta*pi/180,r,'-b'); Store(9*N+1:10*N,1)=[r.*cos(theta*pi/180)]'; Store(9*N+1:10*N,2)=[r.*sin(theta*pi/180)]'; n=size(t,2); for i=1:n-1 dr(i)=(r(i+1)-r(i))/tou; end for i=1:n-2 d2r(i)=(dr(i+1)-dr(i))/tou; end m=size(t,2); for j=1:m-1 tr(j)=(theta(j+1)-theta(j))/tou; end for j=1:m-2 t2r(j)=(tr(j+1)-tr(j))/tou; end w1=r(end-2); w3=dr(end-1); w5=d2r(end); y1=theta(end-2); y3=tr(end-1); y5=t2r(end); q1=ZXJT.*sin((-SXJDT/2-JPJDT+JPJDT.*t)*pi/180)+(SZPBJ+JPCDT.*f2).*sin((180-3*SXJDT/4-3*JPJDT/2+3*JPJDT.*t/2)*pi/180); q2=ZXJT.*cos((-SXJDT/2-JPJDT+JPJDT.*t)*pi/180)+(SZPBJ+JPCDT.*f2).*cos((180-3*SXJDT/4-3*JPJDT/2+3*JPJDT.*t/2)*pi/180)-JYBJ; a=atan(q1./q2)*180/pi; P=ZXJT.*cos((-SXJDT/2-JPJDT+JPJDT.*t-a)*pi/180)+(SZPBJ+JPCDT.*f2).*cos((180-3*SXJDT/4-3*JPJDT/2+3*JPJDT.*t/2-a)*pi/180)-JYBJ.*cos(a*pi/180); q3=(P-DCDT).*sin(a*pi/180); q4=JYBJ+(P-DCDT).*cos(a*pi/180); b=atan(q3./q4)*180/pi; r=JYBJ.*cos(b*pi/180)+(P-DCDT).*cos((a-b)*pi/180); theta=-90-PZJT+SXJDT/2+JPJDT-JPJDT.*t+b; axes(handles.axes1); polar(theta*pi/180,r,'-b'); Store(10*N+1:11*N,1)=[r.*cos(theta*pi/180)]'; Store(10*N+1:11*N,2)=[r.*sin(theta*pi/180)]'; n=size(t,2); for i=1:n-1 dr(i)=(r(i+1)-r(i))/tou; end for i=1:n-2 d2r(i)=(dr(i+1)-dr(i))/tou; end m=size(t,2); for j=1:m-1 tr(j)=(theta(j+1)-theta(j))/tou; end for j=1:m-2 t2r(j)=(tr(j+1)-tr(j))/tou; end w2=r(1); w4=dr(1); w6=d2r(1); y2=theta(1); y4=tr(1); y6=t2r(1); syms x C1=[x.^5 x.^4 x.^3 x.^2 x 1]; C2=[5*x.^4 4*x.^3 3*x.^2 2*x 1 0]; C3=[5*4*x.^3 4*3*x.^2 3*2*x 2 0 0]; A=[subs(C1,0);subs(C1,1);subs(C2,0);subs(C2,1);subs(C3,0);subs(C3,1)]; w=[w1 w2 w3 w4 w5 w6]'; e=inv(A)*w; r=e(1).*t.^5+e(2).*t.^4+e(3).*t.^3+e(4).*t.^2+e(5).*t+e(6); e_r(:,3)=e; y=[y1 y2 y3 y4 y5 y6]'; e=inv(A)*y; theta=e(1).*t.^5+e(2).*t.^4+e(3).*t.^3+e(4).*t.^2+e(5).*t+e(6); e_theta(:,3)=e; axes(handles.axes1); polar(theta*pi/180,r,'-b'); Store(11*N+1:12*N,1)=[r.*cos(theta*pi/180)]'; Store(11*N+1:12*N,2)=[r.*sin(theta*pi/180)]'; q1=-ZXJT.*sin((-SXJDT/2+SXJDT.*t-180+DJD)*pi/180)-SZPBJ.*sin((180-3*SXJDT/4+3*SXJDT.*t/2-180+DJD)*pi/180)+JYBJ.*sin((-180+DJD)*pi/180); q2=ZXJT.*cos((-SXJDT/2+SXJDT.*t-180+DJD)*pi/180)+SZPBJ.*cos((180-3*SXJDT/4+3*SXJDT.*t/2-180+DJD)*pi/180)-JYBJ.*cos((-180+DJD)*pi/180); a=atan(q1./q2)*180/pi; P=ZXJT.*cos((-SXJDT/2+SXJDT.*t-180+DJD+a)*pi/180)+SZPBJ.*cos((180-3*SXJDT/4+3*SXJDT.*t/2-180+DJD+a)*pi/180)-JYBJ.*cos((-180+DJD+a)*pi/180); q3=(P-DCDT).*sin((180-a-DJD)*pi/180); q4=JYBJ+(P-DCDT).*cos((180-a-DJD)*pi/180); b=atan(q3./q4)*180/pi; r=JYBJ.*cos(b*pi/180)+(P-DCDT).*cos((180-a-DJD-b)*pi/180); theta=-90-PZJT+SXJDT/2-SXJDT.*t+b; axes(handles.axes1); polar(theta*pi/180,r,'-b'); Store(12*N+1:13*N,1)=[r.*cos(theta*pi/180)]'; Store(12*N+1:13*N,2)=[r.*sin(theta*pi/180)]'; q1=-ZXJT.*sin((SXJDT/2+CPJDT.*t-180+DJD)*pi/180)-SZPBJ.*sin((180+3*SXJDT/4+3*CPJDT.*t/2-180+DJD)*pi/180)+JYBJ.*sin((-180+DJD)*pi/180); q2=ZXJT*cos((SXJDT/2+CPJDT*t-180+DJD)*pi/180)+SZPBJ*cos((180+3*SXJDT/4+3*CPJDT*t/2-180+DJD)*pi/180)-JYBJ.*cos((-180+DJD)*pi/180); a=atan(q1./q2)*180/pi; P=ZXJT.*cos((SXJDT/2+CPJDT.*t-180+DJD+a)*pi/180)+SZPBJ.*cos((180+3*SXJDT/4+3*CPJDT.*t/2-180+DJD+a)*pi/180)-JYBJ.*cos((-180+DJD+a)*pi/180); q3=(P-DCDT-CPCDT.*f1).*sin((180-a-DJD)*pi/180); q4=JYBJ+(P-DCDT-CPCDT.*f1).*cos((180-a-DJD)*pi/180); b=atan(q3./q4)*180/pi; r=JYBJ.*cos(b*pi/180)+(P-DCDT-CPCDT.*f1).*cos((180-a-DJD-b)*pi/180); theta=-90-PZJT-SXJDT/2-CPJDT.*t+b; axes(handles.axes1); polar(theta*pi/180,r,'-b'); Store(13*N+1:14*N,1)=[r.*cos(theta*pi/180)]'; Store(13*N+1:14*N,2)=[r.*sin(theta*pi/180)]'; n=size(t,2); for i=1:n-1 dr(i)=(r(i+1)-r(i))/tou; end for i=1:n-2 d2r(i)=(dr(i+1)-dr(i))/tou; end m=size(t,2); for j=1:m-1 tr(j)=(theta(j+1)-theta(j))/tou; end for j=1:m-2 t2r(j)=(tr(j+1)-tr(j))/tou; end w1=r(end-2); w3=dr(end-1); w5=d2r(end); y1=theta(end-2); y3=tr(end-1); y5=t2r(end); q1=-ZXJO.*sin((-SXJDO/2-JPJDO+JPJDO.*t-180+DJD)*pi/180)-DZPBJ.*sin((-180-3*SXJDO/4-3*JPJDO/2+3*JPJDO.*t/2-180+DJD)*pi/180)+JYBJ.*sin((-180+DJD)*pi/180); q2=ZXJO.*cos((-SXJDO/2-JPJDO+JPJDO.*t-180+DJD)*pi/180)+DZPBJ.*cos((-180-3*SXJDO/4-3*JPJDO/2+3*JPJDO.*t/2-180+DJD)*pi/180)-JYBJ.*cos((-180+DJD)*pi/180); a=atan(q1./q2)*180/pi; P=ZXJO.*cos((-SXJDO/2-JPJDO+JPJDO.*t-180+DJD+a)*pi/180)+DZPBJ.*cos((-180-3*SXJDO/4-3*JPJDO/2+3*JPJDO.*t/2-180+DJD+a)*pi/180)-JYBJ.*cos((-180+DJD+a)*pi/180); q3=(P-DCDT-JPCDO.*f2).*sin((180-a-DJD)*pi/180); q4=JYBJ+(P-DCDT-JPCDO.*f2).*cos((180-a-DJD)*pi/180); b=atan(q3./q4)*180/pi; r=JYBJ.*cos(b*pi/180)+(P-DCDT-JPCDO.*f2).*cos((180-a-DJD-b)*pi/180); theta=90-PZJO+SXJDO/2+JPJDO-JPJDO.*t+b-360; axes(handles.axes1); polar(theta*pi/180,r,'-b'); Store(14*N+1:15*N,1)=[r.*cos(theta*pi/180)]'; Store(14*N+1:15*N,2)=[r.*sin(theta*pi/180)]'; n=size(t,2); for i=1:n-1 dr(i)=(r(i+1)-r(i))/tou; end for i=1:n-2 d2r(i)=(dr(i+1)-dr(i))/tou; end m=size(t,2); for j=1:m-1 tr(j)=(theta(j+1)-theta(j))/tou; end for j=1:m-2 t2r(j)=(tr(j+1)-tr(j))/tou; end w2=r(1); w4=dr(1); w6=d2r(1); y2=theta(1); y4=tr(1); y6=t2r(1); syms x C1=[x.^5 x.^4 x.^3 x.^2 x 1]; C2=[5*x.^4 4*x.^3 3*x.^2 2*x 1 0]; C3=[5*4*x.^3 4*3*x.^2 3*2*x 2 0 0]; A=[subs(C1,0);subs(C1,1);subs(C2,0);subs(C2,1);subs(C3,0);subs(C3,1)]; w=[w1 w2 w3 w4 w5 w6]'; e=inv(A)*w; r=e(1).*t.^5+e(2).*t.^4+e(3).*t.^3+e(4).*t.^2+e(5).*t+e(6); e_r(:,4)=e; y=[y1 y2 y3 y4 y5 y6]'; e=inv(A)*y; e_theta(:,4)=e; theta=e(1).*t.^5+e(2).*t.^4+e(3).*t.^3+e(4).*t.^2+e(5).*t+e(6); polar(theta*pi/180,r,'-b'); axis([-800 800 -800 800]); hold off; Store(15*N+1:16*N,1)=[r.*cos(theta*pi/180)]'; Store(15*N+1:16*N,2)=[r.*sin(theta*pi/180)]'; save Store.txt -ascii Store set(handles.state,'string','程序运行完成'); set(handles.banjing,'data',e_r'); set(handles.angle,'data',e_theta');

为我将将第二张图的画图方式改为pcolor,并模拟运行结果# -- coding: utf-8 -- """ Created on Thu Jun 1 17:06:08 2023 @author: Rayquaza """ import numpy as np import matplotlib.pyplot as plt def ricker(f, length, dt): t = np.arange(-length/2,(length-dt)/2, dt) y = (1.0 - 2.0*(np.pi2)(f2)(t2)) * np.exp(-(np.pi2)(f2)(t2)) return t,y Frequency = 20 length = 0.128 dt = 0.001 t0, w0 = ricker(Frequency, length, dt) rho = np.array([1.6, 2.4, 1.8]) v = np.array([2000, 3000, 2200]) x = np.arange(0, 500, 1) t = np.arange(0, 0.3, dt) Z = rho*v d_model = np.zeros((2, 500)) for i in range(500): d_model[0, i] = 200 if i < 50: d_model[1, i] = 200 elif i < 250 and i >= 50: d_model[1, i] = 200 + (i-50) elif i >=250: d_model[1, i] = 400 t1 = np.zeros((2, 500)) t1[0, :] = d_model[0,:] / v[1] for i in range(500): t1[1, i] = (d_model[1, i] - d_model[0, i]) / v[2] + t1[0, i] L = np.zeros(2) for i in range(2): L[i] = (Z[i+1] - Z[i]) / (Z[i+1] + Z[i]) L1 = np.zeros([300, 500]) for i in range(2): for j in range(500): if j < 50: L1[int(np.round(t1[i,j]/dt)),j] = (Z[2]-Z[0]) / (Z[2]+Z[0]) else: L1[int(np.round(t1[i,j]/dt)),j] = L[i] syn = np.zeros((300, 500)) for j in range(500): syn[: , j] = np.convolve(L1[:,j], w0, 'same') fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(18, 9)) axes[0].plot(w0, t0, 'b-') axes[0].xaxis.set_ticks_position('top') axes[0].invert_yaxis() axes[0].set_title("Amplitude", fontsize = 12) axes[0].set_ylabel("Time(s)",fontsize = 12) X, T = np.meshgrid(x, t) c = axes[1].contour(X, T, L1) axes[1].xaxis.set_ticks_position('top') axes[1].invert_yaxis() axes[1].set_title("Reflection Coefficient", fontsize = 12) axes[1].set_ylabel("Eight-Way Travel Time(s)",fontsize = 12) c_map = axes[2].pcolormesh(X, T, syn, cmap='bwr', shading='auto') axes[2].xaxis.set_ticks_position('top') axes[2].invert_yaxis() axes[2].set_xlabel("Amplitude", fontsize = 12) axes[2].set_ylabel("Two-Way Travel Time(s)",fontsize = 12) fig.colorbar(c_map, ax=axes[2]) fig.suptitle('Two-Layer Synthetic Seismogram', fontsize = 18) plt.tight_layout() plt.show()

最新推荐

recommend-type

Matplotlib不能显示中文 — Font family [‘sans-serif’] not found警告

在使用Matplotlib进行数据可视化时,可能会遇到一个问题,即无法正常显示中文字符和正负号,这通常会导致图表中的标签和轴标题显示为方框。这个问题的根源在于Matplotlib默认的字体库不包含中文字体,因此在尝试渲染...
recommend-type

python实点云分割k-means(sklearn)详解

点云分割是计算机视觉和机器学习领域中的一个重要任务,它涉及到将三维空间中的点集划分为不同的区域或类。在给定的文件中,我们看到使用Python和scikit-learn库(sklearn)来实现点云分割的一个实例,具体是通过k-...
recommend-type

matlab画图中线型及颜色设置-matlab画图中线型及颜色设置.doc

具体方法是在图形窗口的 Edit 菜单中选择 Properties 项,打开图形对象的参数设置窗口,可以设置对象的属性。 坐标系是图形的定位系统。在一个图形窗口中可以有多个坐标系,但只有一个当前的坐标系。每个坐标系都有...
recommend-type

python3利用Axes3D库画3D模型图

在Python编程环境中,绘制3D模型图是一种直观展示数据和模型的方法,特别是在处理涉及多个变量的机器学习问题时。本文将详细介绍如何使用Python3的Axes3D库来创建3D模型图,这对于理解和可视化三维数据至关重要。 ...
recommend-type

【税会实务】Excel文字输入技巧.doc

【税会实务】Excel文字输入技巧.doc
recommend-type

C++实现的DecompressLibrary库解压缩GZ文件

根据提供的文件信息,我们可以深入探讨C++语言中关于解压缩库(Decompress Library)的使用,特别是针对.gz文件格式的解压过程。这里的“lib”通常指的是库(Library),是软件开发中用于提供特定功能的代码集合。在本例中,我们关注的库是用于处理.gz文件压缩包的解压库。 首先,我们要明确一个概念:.gz文件是一种基于GNU zip压缩算法的压缩文件格式,广泛用于Unix、Linux等操作系统上,对文件进行压缩以节省存储空间或网络传输时间。要解压.gz文件,开发者需要使用到支持gzip格式的解压缩库。 在C++中,处理.gz文件通常依赖于第三方库,如zlib或者Boost.IoStreams。codeproject.com是一个提供编程资源和示例代码的网站,程序员可以在该网站上找到现成的C++解压lib代码,来实现.gz文件的解压功能。 解压库(Decompress Library)提供的主要功能是读取.gz文件,执行解压缩算法,并将解压缩后的数据写入到指定的输出位置。在使用这些库时,我们通常需要链接相应的库文件,这样编译器在编译程序时能够找到并使用这些库中定义好的函数和类。 下面是使用C++解压.gz文件时,可能涉及的关键知识点: 1. Zlib库 - zlib是一个用于数据压缩的软件库,提供了许多用于压缩和解压缩数据的函数。 - zlib库支持.gz文件格式,并且在多数Linux发行版中都预装了zlib库。 - 在C++中使用zlib库,需要包含zlib.h头文件,同时链接z库文件。 2. Boost.IoStreams - Boost是一个提供大量可复用C++库的组织,其中的Boost.IoStreams库提供了对.gz文件的压缩和解压缩支持。 - Boost库的使用需要下载Boost源码包,配置好编译环境,并在编译时链接相应的Boost库。 3. C++ I/O操作 - 解压.gz文件需要使用C++的I/O流操作,比如使用ifstream读取.gz文件,使用ofstream输出解压后的文件。 - 对于流操作,我们常用的是std::ifstream和std::ofstream类。 4. 错误处理 - 解压缩过程中可能会遇到各种问题,如文件损坏、磁盘空间不足等,因此进行适当的错误处理是必不可少的。 - 正确地捕获异常,并提供清晰的错误信息,对于调试和用户反馈都非常重要。 5. 代码示例 - 从codeproject找到的C++解压lib很可能包含一个或多个源代码文件,这些文件会包含解压.gz文件所需的函数或类。 - 示例代码可能会展示如何初始化库、如何打开.gz文件、如何读取并处理压缩数据,以及如何释放资源等。 6. 库文件的链接 - 编译使用解压库的程序时,需要指定链接到的库文件,这在不同的编译器和操作系统中可能略有不同。 - 通常,在编译命令中加入-l参数,比如使用g++的话可能是`g++ -o DecompressLibrary DecompressLibrary.cpp -lz`,其中`-lz`表示链接zlib库。 7. 平台兼容性 - 在不同平台上使用解压库可能需要考虑平台兼容性问题。 - Windows系统可能需要额外的配置和库文件,因为zlib或其他库可能不是默认预装的。 根据以上知识点,我们可以得出,在C++中解压.gz文件主要涉及到对zlib或类似库的使用,以及熟悉C++的I/O操作。正确使用这些库,能够有效地对压缩文件进行解压,并处理可能出现的错误情况。如果从codeproject获取到的C++解压lib确实是针对.gz文件格式的,那么它很可能已经封装好了大部分的操作细节,让开发者能够以更简单的方式实现解压功能。
recommend-type

【数据融合技术】:甘肃土壤类型空间分析中的专业性应用

# 摘要 数据融合技术作为一种集成多源数据信息的方法,在土壤类型空间分析中发挥着关键作用。本文介绍了数据融合技术的基本概念及其理论基础,阐述了数据预处理、同步整合及冲突解决等关键技术,并详细描述了甘肃土壤类型数据准备的流程,包括数据采集、质量评估、空间化处理及融合实践准备。通过具体案例分析,展示了数据融合在土壤类型空间分布分析、土壤质量评估及土壤保护规划中的应用。同时,文
recommend-type

VM ware如何查看软件版本信息

<think>首先,用户的问题是:“我想查找VMware软件版本信息的查看方法请问如何在VMware中查看软件版本信息”。用户参考了之前的引用,但那些引用主要是关于查看VMware版本的一般方法,现在用户具体想知道在VMware软件中如何查看版本信息。回顾之前的对话:-用户第一次问的是VSCode的版本查看方法。-现在用户问的是VMware的版本查看方法。-系统级指令要求使用中文回答,正确格式化数学表达式(如果需要),但这里可能不需要数学表达式。-指令还要求生成相关问题,并在回答中引用段落时添加引用标识。用户提供的引用[1]到[5]是关于VMware版本的查看方法、下载等,但用户特别强调“参考
recommend-type

数据库课程设计报告:常用数据库综述

数据库是现代信息管理的基础,其技术广泛应用于各个领域。在高等教育中,数据库课程设计是一个重要环节,它不仅是学习理论知识的实践,也是培养学生综合运用数据库技术解决问题能力的平台。本知识点将围绕“经典数据库课程设计报告”展开,详细阐述数据库的基本概念、课程设计的目的和内容,以及在设计报告中常用的数据库技术。 ### 1. 数据库基本概念 #### 1.1 数据库定义 数据库(Database)是存储在计算机存储设备中的数据集合,这些数据集合是经过组织的、可共享的,并且可以被多个应用程序或用户共享访问。数据库管理系统(DBMS)提供了数据的定义、创建、维护和控制功能。 #### 1.2 数据库类型 数据库按照数据模型可以分为关系型数据库(如MySQL、Oracle)、层次型数据库、网状型数据库、面向对象型数据库等。其中,关系型数据库因其简单性和强大的操作能力而广泛使用。 #### 1.3 数据库特性 数据库具备安全性、完整性、一致性和可靠性等重要特性。安全性指的是防止数据被未授权访问和破坏。完整性指的是数据和数据库的结构必须符合既定规则。一致性保证了事务的执行使数据库从一个一致性状态转换到另一个一致性状态。可靠性则保证了系统发生故障时数据不会丢失。 ### 2. 课程设计目的 #### 2.1 理论与实践结合 数据库课程设计旨在将学生在课堂上学习的数据库理论知识与实际操作相结合,通过完成具体的数据库设计任务,加深对数据库知识的理解。 #### 2.2 培养实践能力 通过课程设计,学生能够提升分析问题、设计解决方案以及使用数据库技术实现这些方案的能力。这包括需求分析、概念设计、逻辑设计、物理设计、数据库实现、测试和维护等整个数据库开发周期。 ### 3. 课程设计内容 #### 3.1 需求分析 在设计报告的开始,需要对项目的目标和需求进行深入分析。这涉及到确定数据存储需求、数据处理需求、数据安全和隐私保护要求等。 #### 3.2 概念设计 概念设计阶段要制定出数据库的E-R模型(实体-关系模型),明确实体之间的关系。E-R模型的目的是确定数据库结构并形成数据库的全局视图。 #### 3.3 逻辑设计 基于概念设计,逻辑设计阶段将E-R模型转换成特定数据库系统的逻辑结构,通常是关系型数据库的表结构。在此阶段,设计者需要确定各个表的属性、数据类型、主键、外键以及索引等。 #### 3.4 物理设计 在物理设计阶段,针对特定的数据库系统,设计者需确定数据的存储方式、索引的具体实现方法、存储过程、触发器等数据库对象的创建。 #### 3.5 数据库实现 根据物理设计,实际创建数据库、表、视图、索引、触发器和存储过程等。同时,还需要编写用于数据录入、查询、更新和删除的SQL语句。 #### 3.6 测试与维护 设计完成之后,需要对数据库进行测试,确保其满足需求分析阶段确定的各项要求。测试过程包括单元测试、集成测试和系统测试。测试无误后,数据库还需要进行持续的维护和优化。 ### 4. 常用数据库技术 #### 4.1 SQL语言 SQL(结构化查询语言)是数据库管理的国际标准语言。它包括数据查询、数据操作、数据定义和数据控制四大功能。SQL语言是数据库课程设计中必备的技能。 #### 4.2 数据库设计工具 常用的数据库设计工具包括ER/Studio、Microsoft Visio、MySQL Workbench等。这些工具可以帮助设计者可视化地设计数据库结构,提高设计效率和准确性。 #### 4.3 数据库管理系统 数据库管理系统(DBMS)是用于创建和管理数据库的软件。关系型数据库管理系统如MySQL、PostgreSQL、Oracle、SQL Server等是数据库课程设计中的核心工具。 #### 4.4 数据库安全 数据库安全涉及用户认证、授权、数据加密、审计日志记录等方面,以确保数据的完整性和保密性。设计报告中应考虑如何通过DBMS内置的机制或额外的安全措施来保护数据。 ### 5. 结语 综上所述,一个经典数据库课程设计报告包含了从需求分析到数据库安全的全过程,涵盖了数据库设计的各个方面。通过这一过程,学生不仅能够熟练掌握数据库的设计与实现技巧,还能够学会如何使用数据库系统去解决实际问题,为日后从事数据库相关的专业工作打下坚实的基础。
recommend-type

【空间分布规律】:甘肃土壤类型与农业生产的关联性研究

# 摘要 本文对甘肃土壤类型及其在农业生产中的作用进行了系统性研究。首先概述了甘肃土壤类型的基础理论,并探讨了土壤类型与农业生产的理论联系。通过GIS技术分析,本文详细阐述了甘肃土壤的空间分布规律,并对其特征和影响因素进行了深入分析。此外,本文还研究了甘肃土壤类型对农业生产实际影响,包括不同区域土壤改良和作物种植案例,以及土壤养分、水分管理对作物生长周期和产量的具体影响。最后,提出了促进甘肃土壤与农业可持续发展的策略,包括土壤保护、退化防治对策以及土壤类型优化与农业创新的结合。本文旨在为