matplotlib同时显⽰中⽂和特殊符号
matplotlib同时显⽰中⽂和特殊符号
⼀、总结
⼀句话总结:
> 直接分开写,加号连接即可
> (0.1,6,r'x均值'+r':µx', fontdict={'size':16,'color':'r'})
1、matplotlib中使⽤TeX标记?
> 你可以在任何 matplotlib ⽂本字符串中使⽤⼦ TeX 标记,【将它放在⼀对美元符号($)内】。
> 注意,你不需要安装 TeX,因为【matplotlib 提供了⾃⼰的 TeX 表达式解析器,布局引擎和字体】。
⼆、matplotlib同时显⽰中⽂和特殊符号
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import make_interp_spline
# 设置matplotlib库字体的⾮衬线字体为⿊体
# 设置matplotlib库字体族为⾮衬线字体
fig, ax = plt.subplots()
# 取消边框
for key, spine in ax.spines.items():
# 'left', 'right', 'bottom', 'top'
if key == 'left'or key == 'right':
spine.t_visible(Fal)
icks([])
x=np.array([1,2,3,4,5])
y=np.array([4,9,6,8,3])
y_an(y).repeat(5)
print(y_mean)
#plt.plot(x,y,'ro')
plt.plot(x,y,color='red', marker='o', linestyle='dashed',linewidth=0, markersize=12)
plt.plot(x,y_mean,'k--')
x_smooth = np.linspace(x.min(),x.max(),300) #300 reprents number of points to make between T.min and T.max
y_smooth = make_interp_spline(x, y)(x_smooth)
plt.plot(x_smooth,y_smooth,'r--')
<(0.1,6,r'x均值'+r'$:\mu_x$', fontdict={'size':16,'color':'r'})
plt.show()
三、Python Matplotlib中坐标轴标题中各种特殊符号的显⽰转义字符全集,编写数学表达式
Matplotlib中⽂显⽰问题——⽤例⼦说明问题
#-*- coding: utf-8 -*-
from pylab import *
t = arange(-4*pi, 4*pi, 0.01)
y = sin(t)/t
plt.plot(t, y)
plt.title('test')
plt.xlabel(u'\u2103',fontproperties='SimHei')
#在这⾥,u'\u2103'是摄⽒度,前⾯的u代表unicode,⽽引号⾥的内容,是通过在⽹上查找“℃”这⼀个符号的unicode编码得到的。这⾥
的“摄⽒度”是中⽂,要显⽰的话需要在后⾯加上fontproperties属性即可,这⾥设置的字体为⿊体。
plt.ylabel(u'幅度',fontproperties='SimHei')#也可以直接显⽰中⽂。
plt.show()
可以这样使⽤:ylabel('Rice('+r'µmol'+' '+'m−2s−1'+')')。
中⽂与LaTex共同显⽰问题:
在坐标轴标题中同时显⽰中⽂以及带有上下标的各种数学单位,需要分两步:
1、根据上述显⽰中⽂的⽅法,先将中⽂标题加上;
import matplotlib.pyplot as plt
import numpy as np
t = np.linspace(0, 10, 1000)
y = np.sin(t)
plt.plot(t, y,label=u'正弦曲线 (m)')
plt.xlabel(u"时间", fontproperties='SimHei')
plt.ylabel(u"振幅", fontproperties='SimHei')
plt.title(u"正弦波", fontproperties='SimHei'ferrino
# 添加单位
(6.25, -1.14,r'(µmol'+' '+'m−2s−1)',fontsize=15, horizontalalignment='center',verticalalignment='center')
#在这⾥设置是text的旋转,0为⽔平,90为竖直
t.t_rotation(0)
# legend中显⽰中⽂
plt.legend(prop={'family':'SimHei','size':15})
plt.savefig("C:\\Urs\\Administrator\\Desktop\\test.png")
编写数学表达式
你可以在任何 matplotlib ⽂本字符串中使⽤⼦ TeX 标记,将它放在⼀对美元符号($)内。
注意,你不需要安装 TeX,因为 matplotlib 提供了⾃⼰的 TeX 表达式解析器,布局引擎和字体。布局引擎是 Donald Knuth 的 TeX 中的布局的⼀种相当直接的适配版,所以质量是相当不错的(matplotlib 还为那些想要调⽤ TeX ⽣成⽂本的⼈提供⼀个utex选项(参见)。
任何⽂本元素都可以使⽤数学⽂本。你应该使⽤原始字符串(在引号前⾯加⼀个'r'),并⽤美元符号($)包围数学⽂本,如 TeX。常规⽂本和数学⽂本可以在同⼀个字符串内交错。 Mathtext 可以使⽤ Computer Modern 字体(来⾃ (La)TeX),STIX 字体(为与 Times 混合使⽤⽽设计)或你提供的 Unicode 字体。可以使⽤⾃定义变量mathtext.fontt选择 mathtext 字体(请参阅)
注意在的『narrow』构建中,如果使⽤ STIX 字体,你还应该将ps.fonttype和pdf.fonttype设置为 3(默认值),⽽不是 42。否则⼀些字符将不可见。
下⾯是个简单的例⼦:plt.title('alpha > beta'),⽣成alpha > beta;但是这个: plt.title(r'α>β'),会⽣成。
注意:Mathtext 应该放在⼀对美元符号($)之间。为了易于显⽰货币值,例如$ 100.00,如果整个字符串中存在单个美元符号,则它将被逐字显⽰为美元符号。这是常规 TeX 的⼀个⼩改变,其中⾮数学⽂本中的美元符号必须被转义('$')。
注意:虽然⼀对美元符号($)内的语法是 TeX 风格的,但是外⾯的⽂本不是。特别是,字符:# $ % & ~ _ ^ \ { }
在 TeX 中的数学模式之外有特殊的意义。因此,根据rcParam text.utex标志这些字符的表现有所不同。更多信息请参阅。
下标和上标
为了制作下标和上标,使⽤_或者^符号: r'αi>βi'
即为:
⼀些符号会⾃动将它们的下标或上标放在操作符的底部或顶部,例如,为了编写 0 到⽆穷的的和,你可以:
baby中文歌词
r'∑∞i=0x i'
分数、⼆项式和堆叠数
可以使⽤\frac{}{},\binomial{}{}和\stackrel{}{}命令分别创建分数,⼆项式和堆叠数字:r'3
4(
3 4)
3
4'
产⽣
分数可以任意嵌套:r'5−
1
x 4'
产⽣
请注意,在分数周围放置圆括号和花括号需要特别注意。这种明显的⽅式会产⽣太⼩的括号:r'$(\frac{5 - \frac{1}{x}}{4})$'
解决⽅案是在括号前⾯加上\left和\right以通知解析器这些括号包含整个对象:r'5−
1
x
4'
根式
根式可以有\sqrt[]{}产⽣,例如:r'√2'
⽅括号内可以(可选地)设置任何底数。请注意,底数必须是⼀个简单的表达式,并且不能包含布局命令,如分数或上下标:r'3√x'
字体
⽤于数学符号的默认字体是斜体。
()
注意:此默认值可以使⽤mathtext.default rcParam更改。这是⾮常有⽤的,例如,通过将其设置为regular,使⽤与常规⾮数学⽂本相同的字体作为数学⽂本。
为了修改字体,例如,以罗马字体编写sin,使⽤字体命令来闭合⽂本:r's(t)=A sin(2ωt)'
anxiety这⾥s和t是斜体(默认)的变量,sin是罗马字体,振幅A是书法字体。注意在上⾯的例⼦中,A和sin之间的间距被挤压。你可以使⽤间距命令在它们之间添加⼀些空格:s(t) = \mathcal{A}\/\sin(2 \omega t)
所有字体的可⽤选项为:
命令结果
\mathrm{Roman}
\mathit{Italic}
\mathtt{Typewriter}
椭圆面积公式\mathcal{CALLIGRAPHY}
使⽤ STIX 字体时,你也可以选择:
命令结果
\mathbb{blackboard}
\mathrm{\mathbb{blackboard}}
\mathfrak{Fraktur}
\mathsf{sansrif}
\mathrm{\mathsf{sansrif}}
lingos\mathcircled{circled}
还有三个全局『字体集』可供选择,它们使⽤matplotlibrc中的mathtext.fontt参数进⾏选择。
cm: Computer Modern (TeX)
stix: STIX (为和 Times 混合使⽤⽽设计)
stixsans: STIX sans-rif
此外,你可以使⽤\mathdefault{...}或其别名\mathregular{...}来使⽤⽤于 mathtext 之外的常规⽂本的字体。这种⽅法有⼀些限制,最明显的是,可以使⽤很少的符号,但可⽤于将数学表达式与图中的其他⽂本混合。
⾃定义字体
mathtext 还提供了⼀种对数学公式使⽤⾃定义字体的⽅法。这种⽅法使⽤起来相当棘⼿,应该看做为有耐⼼的⽤户准备的试验特性。通过将rcParam mathtext.fontt设置为custom,你可以设置以下参数,这些参数控制⽤于特定数学字符集的字体⽂件。
参数相当于
mathtext.it\mathit{}默认斜体
<\mathrm{}罗马字体(upright)
<\mathtt{}打字机(monospace)
mathtext.bf\mathbf{}粗体
mathtext.cal\mathcal{}书法
mathtext.sf\mathsf{} sans-rif
每个参数应该设置为fontconfig字体描述符(在尚未编写的字体章节中定义)。
所使⽤的字体应该具有 Unicode 映射,以便找到任何⾮拉丁字符,例如希腊语。如果要使⽤未包含在⾃定义字体中的数学符号,可以
将rcParam mathtext.fallback_to_cm设置为True,这将导致⾃定义字体中找不到特定字符时,数学⽂本系统使⽤默认的 Computer Modern 字体中的字符。
请注意,Unicode 中规定的数学字形随时间⽽演进,许多字体的字形对于 mathtext 可能不在正确位置。
重⾳符号
重⾳命令可以位于任何符号之前,在其上添加重⾳。他们中的⼀些些拥有较长和较短的形式。
命令结果
\acute a或\'a
\bar a
命令结果
\breve a
\ddot a或\"a
gspot\dot a或\.a
\grave a或\a`
\hat a或\^a
\tilde a或\~a
\vec a
\overline{abc}
另外有两个特殊的重⾳符号,可以⾃动调整为符号的宽度:
命令结果
\widehat{xyz}
\widetilde{xyz}
ˆiˆı"当把重⾳放在⼩写的i和j上时应该⼩⼼。注意下⾯的\imath⽤来避免i上额外的点:r"
符号nbsp什么意思
你也可以使⽤更⼤量的 TeX 符号,⽐如\infty,\leftarrow,\sum,\int。
⼩写希腊字母
\alpha\beta\chi
\epsilon\eta\gamma
\lambda\mu\nu
\pi\psi\rho
\theta\upsilon\varepsilon
\varpi\varrho\varsigma
\zeta
⼤写希腊字母
\Delta\Gamma\Lambda
\Psi\Sigma\Theta
\nabla
希伯来⽂
\aleph\beth\daleth
分隔符
/[\Downarrow
\downarrow\langle\lceil
\rangle\rceil\rfloor
\vert\{|
⼤型符号
\bigcap\bigcup\bigodot
\biguplus\bigvee\bigwedge
英文整句翻译\oint\prod\sum
标准函数名称
\Pr\arccos\arcsin
外套英语\arg\cos\cosh
\coth\csc\deg
\dim\exp\gcd
\inf\ker\lg
\liminf\limsup\ln
\max\min\c
\sinh\sup\tan
⼆元运算符和关系符号
\Bumpeq\Cap\Cup
\Doteq\Join\Subt
\Supt\Vdash\Vvdash
\approx\approxeq\ast
\asymp\backepsilon\backsim
\backsimeq\barwedge\becau
\between\bigcirc\bigtriangledown
\bigtriangleup\blacktriangleleft\blacktriangleright