【问题标题】:Typing Greek letters etc. in plots在绘图中键入希腊字母等
【发布时间】:2012-11-12 04:53:41
【问题描述】:

我需要在绘图的轴标签中键入希腊字母和埃符号。比如

fig.gca().set_xlabel("$wavelength\, (Angstrom)$")
fig.gca().set_ylabel("$lambda$")

除了我实际上想用实际符号替换“Angstrom”和“lambda”。我该怎么做?谢谢!

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    你需要制作字符串raw并使用latex

    fig.gca().set_ylabel(r'$\lambda$')
    

    从 matplotlib 2.0 开始,默认字体 supports most western alphabets 可以很简单

    ax.set_xlabel('λ')
    

    使用 unicode。

    【讨论】:

      【解决方案2】:

      如果你想在希腊字母前面有一个正常的字符串,请确保你有正确的顺序:

      plt.ylabel(r'Microstrain [$\mu \epsilon$]')
      

      【讨论】:

        【解决方案3】:

        Python 3.x: 小希腊字母的编码从 945 到 969 所以,alpha 是 chr(945),omega 是 chr(969) 所以只需输入

        print(chr(945))
        

        列表中小希腊字母的列表:

        greek_letterz=[chr(code) for code in range(945,970)]
        
        print(greek_letterz)
        

        现在,alpha 是 greek_letterz[0],beta 是 greek_letterz[1],a.s.o

        【讨论】:

          【解决方案4】:

          您不仅可以将原始字符串添加到 matplotlib,还可以在 matplotlibrc 或本地指定字体:

          from matplotlib import rc
          
          rc('font', **{'family':'serif','serif':['Palatino']})
          rc('text', usetex=True)
          

          这会改变你的衬线乳胶字体。您也可以像这样指定 sans-serif Helvetica

          rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
          

          其他选项是 cursivemonospace 及其各自的字体名称。 您的标签将是

          fig.gca().set_xlabel(r'wavelength $5000 \AA$')
          

          如果字体不提供埃符号,您可以尝试使用\mathring{A}

          【讨论】:

          • 埃在此选项中并不令人满意,因为它显示为斜体。在乳胶中工作的 $\text{\AA}$ 似乎在这里工作。还应该有一个选项可以保留用于这些字符的字体。该怎么做?
          • 您可以使用字母 Å 代替专用的 Ångström 符号 (Å),因为很少有字体包含后者,而且大多数字体无论如何都使用相同的字形。 en.wikipedia.org/wiki/%C3%85#Symbol_for_.C3.A5ngstr.C3.B6m
          【解决方案5】:

          为什么不直接使用文字字符?

          fig.gca().set_xlabel("wavelength, (Å)")
          fig.gca().set_ylabel("λ")
          

          如果您使用的是 python 2,则可能必须将其添加到文件中:

          # -*- coding: utf-8 -*-
          from __future__ import unicode_literals  # or use u"unicode strings"
          

          为不容易在键盘上键入的字符定义常量可能更容易。

          ANGSTROM, LAMDBA = "Åλ"
          

          然后你可以在其他地方重复使用它们。

          fig.gca().set_xlabel("wavelength, (%s)" % ANGSTROM)
          fig.gca().set_ylabel(LAMBDA)
          

          【讨论】:

            【解决方案6】:

            你可以在 python 中只使用 unicode 字符。见以下链接Unicode characters for engineers in Python .

            【讨论】:

              【解决方案7】:
              print('Omega: \u03A9') # Ω
              print('Lamda: \u03BB') # λ  
              

              访问网站了解更多符号 More Symbols

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2014-01-13
                • 1970-01-01
                • 1970-01-01
                • 2014-11-02
                • 1970-01-01
                • 1970-01-01
                • 2013-04-19
                相关资源
                最近更新 更多