如何在Octave / MATLAB中标注X轴上的点?

问题描述 投票:0回答:1

我想在GNU Octave中绘制如下的电子能带结构。

enter image description here

我已经生成了图形(我为X轴创建了一个大的linspace k_values,并具有相应的能量值,但是我不确定如何标记X轴上的点)。现在我正在像这样绘图。

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

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

  1. 如何像上图一样从X轴上删除数字并标记某些点(例如Gamma,X,Y)?我知道这些点的X坐标的对应值。
  2. 如何在这些点处放置垂直网格线?
matlab plot octave
1个回答
0
投票

可以用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, 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)
© www.soinside.com 2019 - 2024. All rights reserved.