繁体   English   中英

如何在 Octave/MATLAB 中为 plot 在 X 轴上设置 label 点?

[英]How to label points on X axis for a plot in Octave/MATLAB?

我想 plot 在 GNU Octave 中使用如下电子能带结构。

在此处输入图像描述

我已经生成了图表(我为 X 轴制作了一个大的 linspace k_values并具有相应能量的值,但我不确定如何 label X 轴上的点)。 现在我正在这样策划。

plot(k_values,band1,'color','black')
hold on
plot(k_values,band2,'color','red')

像往常一样,它沿 X 轴显示数字。

  1. 如上图,如何去掉X轴和label某些点(如Gamma、X、Y)的数字? 我知道这些点的 X 坐标的对应值。
  2. 如何在这些点放置垂直网格线?

它可以用 xtick 来实现。

    plot(k_values,band1,'color','black')
    hold on
    plot(k_values,band2,'color','red')
    set(gca,'xtick',[x1 x2 x3 x4 x5 x6]); %Coordinates of W, Gamma, X, W etc.
    %set(gca, 'xticklabel',({'W','\Gamma','X','W','L', 'Gamma'})); 
    %Note: This did not show Greek Gamma did in Octave 4.4 after printing to a pdf 
    %so see alternate method below
    set(gca, 'xticklabel',({'','','','','','',''}));

    text(x1,-12, '$W$', 'fontsize', 30) 
    %Note "$\Gamma$" won't work, and xticklabel cannot recognize \Gamma
    text(x2,-12, '$\Gamma$', 'fontsize', 30)
    text(x3,-12, '$X$', 'fontsize', 30)
    text(x4,-12, '$W$', 'fontsize', 30)
    text(x5,-12, '$L$', 'fontsize', 30)
    text(x6,-12, '$\Gamma$', 'fontsize', 30)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM