настраиваемые метки ztick на графике серфинга с использованием PyPlot - PullRequest
0 голосов
/ 20 апреля 2019

Поиск пользовательских zticklabels и размера шрифта на оси z.В частности, интуитивный подход использования zticks ([- (R + r), 0, R + r], ["- Rr", "0", "R + r"], fontsize = 16) не работает.Я использую Julia 4.3.0, потому что это более старый проект, который я не могу полностью преобразовать в более новую версию в настоящее время.Приведенные ниже строки с комментариями содержат дополнительные команды, которые я пробовал, но они не увенчались успехом.

Моя конечная цель - получить значения -0,8, 0, 0,8 на оси z, чтобы вместо этого сказать "-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 голосов
/ 21 апреля 2019

Комментируемая команда

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

работает, но только если вставить отсутствующую опцию проецирования, как показано на Рис. 99

figure(99)
ax = subplot(111, projection="3d")
...