使用PyPlot在冲浪图上自定义ztick标签

时间:2019-04-20 20:43:47

标签: julia

也在z轴上查找自定义zticklabel和fontsize。最值得注意的是,使用zticks([-(R​​ + r),0,R + r],[“-R-r”,“ 0”,“ R + r”],fontsize = 16)的直观方法无效。我使用的是Julia 4.3.0,因为这是一个较旧的项目,目前我无法完全转换为较新的版本。下面的注释行包括我尝试的其他命令,但未成功。

我这里的最终目标是在z轴上获得-0.8、0、0.8值,分别改为说“ -r”,“ 0”和“ r”。

  using PyPlot

  colormapp = "nipy_spectral"

  R = 1.6;
  r = 0.8;
  N = 256;

  dx = 2*pi/(N-1);
  y = zeros(N,1); # y = phi (col) toroidal
  x = y.'; # x = theta (row) poloidal
  for ix = 2:N; y[ix] = (ix-1)*dx; x[ix] = (ix-1)*dx; end

  cosxsqr = cos(x) .+ 0.0*y;
  sinxsqr = sin(x) .+ 0.0*y;
  sinysqr = 0.0*x .+ sin(y);
  cosysqr = 0.0*x .+ cos(y);
  Rrcosxsqr = R+r*cosxsqr;
  rRrcosx = r*Rrcosxsqr[:];
  Xsqr = Rrcosxsqr.*cosysqr;
  Ysqr = Rrcosxsqr.*sinysqr;
  Zsqr = r*sinxsqr;

  figure(98)
  clf()
  pmeshtor = pcolormesh(x,y,Zsqr+r,cmap=colormapp);
  cb = colorbar();

  colorvals = Zsqr+r;
  colorvals = colorvals/maximum(colorvals[:])

  ax = figure(99)
  clf()
  srf = surf(Xsqr,Ysqr,Zsqr,cstride=10,rstride=10,facecolors=get_cmap(colormapp).o((colorvals)))
  cb = colorbar(pmeshtor,ticks=[0,0.8,1.6])
  cb[:ax][:set_yticklabels](["-r","0","r"], fontsize=16)
  xlabel("x",fontsize=16)
  ylabel("y",fontsize=16)
  zlabel("z",fontsize=16)
  xlim([-(R+r)-0.3,R+r+0.3])
  ylim([-(R+r)-0.3,R+r+0.3])
  zlim([-(R+r)-0.3,R+r+0.3])
  xticks([-(R+r),0,R+r],["-R-r","0","R+r"],fontsize=16)
  yticks([-(R+r),0,R+r],["-R-r","0","R+r"],fontsize=16)
  zticks([-r,0,r])

  #zticklabels([-r,0,r],["-r","0","r"])  
  #setp(ax[:get_zticklabels](),fontsize=16);
  #setp(ax[:set_zticklabels](["-r","0","r"]))#,fontsize=16);

这是生成的图像。 enter image description here

1 个答案:

答案 0 :(得分:0)

注释命令

setp(ax[:set_zticklabels](["-r","0","r"]),fontsize=16);

有效,但仅当插入丢失的投影选项时(如图99所示)

figure(99)
ax = subplot(111, projection="3d")
相关问题