一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

(python3)matplotlib設(shè)置中英文多種字體混合坐標(biāo)軸名稱

 hdzgx 2020-01-05

在利用matplotlib繪圖時,常常需要添加圖例與坐標(biāo)軸名稱,而在論文中,對中英文有嚴(yán)格的不同的字體要求,但默認(rèn)的方法中(如下所示),無法分別為中文、英文指定不同字體(如下圖),因此需要借助其他方法。

# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
# 在python中,字體單位貌似是px,與pt間的換算關(guān)系為1pt=4/3px
simsun = FontProperities(fname=r'C:\Windows\Fonts\simsun.ttc', size=10) 
plt.xlabel(u'Di距離', fontproperties=simsun)

////////////////////////
經(jīng)過摸索后發(fā)現(xiàn)text函數(shù)能夠在指定位置按照指定字體與大小顯示文字,因此可以通過調(diào)整文字位置來實現(xiàn)xlabel的功能并且能夠按照指定字體分別顯示中英文(如下圖)。代碼如下:

# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
from pylab import mpl, text
from matplotlib.font_manager import FontProperties
import numpy as np 

# windows下matplotlib顯示中文一般有問題,需要專門進(jìn)行設(shè)置才能正常顯示
# 下面是兩種設(shè)置的方式,使用時的參數(shù)也略有區(qū)別,在此不具體介紹
# 但需提前設(shè)置好,使得能夠顯示中文,否則中文字符位置顯示為方框
simsun = FontProperties(fname=r'C:\Windows\Fonts\simsun.ttc', size=10) # 宋體
roman = FontProperties(fname=r'C:\Windows\Fonts\times.ttf', size=10) # Times new roman
mpl.rcParams['font.sans-serif'] = ['SimSun']
fontcn = {'family': 'SimSun','size': 10} # 1pt = 4/3px
fonten = {'family':'Times New Roman','size': 10}

plt.figure(1)
ax1 = plt.subplot(121)  # 左圖
ax2 = plt.subplot(122)  # 右圖
plt.sca(ax1)

plt.xlim(0,150)
plt.ylim(0,0.08)
plt.xticks(range(0,160,10),rotation=0)
# 設(shè)置斜體-Times New Roman字體
text(60, -0.01, u'Di', style='italic', fontdict=fonten) 
text(70, -0.01, u'距離', fontdict=fontcn)
text(85, -0.01, u'(km)', fontdict=fonten)
plt.ylabel(u"核密度", fontproperties=simsun)
plt.title(u"a.核密度")

plt.sca(ax2)
plt.xlim(0,150)
plt.ylim(0,1)
plt.xticks(range(0,160,10),rotation=0)
plt.yticks(np.linspace(0,1,11))

text(60, -0.13, u'Di', style='italic', fontdict=fonten)
text(70, -0.13, u'距離', fontdict=fontcn)
text(85, -0.13, u'(km)', fontdict=fonten)
plt.ylabel(u"累積概率", fontproperties=simsun)
plt.title(u"b.累積概率")
plt.show()


上述代碼可直接運行,字體設(shè)置無誤即可得到上圖中的結(jié)果,但Di距離(km)可能會重疊或者空隙較大,這是正常情況,需要調(diào)整文字位置。text函數(shù)的前兩個參數(shù)為其位置參數(shù),都與其x軸、y軸坐標(biāo)刻度有關(guān),以<text(70, -0.01, u’距離’, fontdict=fontcn)為例,70說明其水平方向位置在坐標(biāo)軸70處,-0.01說明其垂直方向位置在-0.01刻度處,按照這個規(guī)則即可以多種字體顯示多段文字。


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产内射一级二级三级| 日韩成人午夜福利免费视频| 欧美胖熟妇一区二区三区| 久久国产精品熟女一区二区三区| 国产精品一区二区丝袜| 精品午夜福利无人区乱码| 香蕉网尹人综合在线观看| 美女黄片大全在线观看| 色丁香一区二区黑人巨大| 日本少妇aa特黄大片| 欧美欧美日韩综合一区| 久久国产人妻一区二区免费| 亚洲熟妇熟女久久精品 | 男人的天堂的视频东京热| 亚洲国产av国产av| av免费视屏在线观看| 五月婷婷亚洲综合一区| 一区二区三区18禁看| 少妇被粗大进猛进出处故事| 亚洲伦片免费偷拍一区| 91精品国产av一区二区| 欧美国产日本高清在线| 日韩精品一区二区三区射精 | 国产午夜在线精品视频| 久久精品久久久精品久久| 欧美日韩国产二三四区| 久久99青青精品免费观看| 视频一区二区黄色线观看| 亚洲精品中文字幕在线视频| 欧美日韩国产精品黄片| 国产精品日韩精品最新| 国产午夜精品亚洲精品国产| 午夜视频在线观看日韩| 九九热这里有精品20| 中文字幕中文字幕在线十八区| 日韩人妻欧美一区二区久久| 日本精品啪啪一区二区三区| 欧美人妻一区二区三区| 久久国产精品亚州精品毛片| 亚洲精品有码中文字幕在线观看| 亚洲国产成人精品一区刚刚|