1. 程式人生 > >Anaconda+5.0.0+JupyterLab+0.27.0+中matplotlib顯示中文標籤

Anaconda+5.0.0+JupyterLab+0.27.0+中matplotlib顯示中文標籤

Anaconda 5.0.0 JupyterLab 0.27.0 中 matplotlib 顯示中文標籤

安全的安裝Anaconda3 5.0.0 Windows x86_64

Anaconda 5.0.0 JupyterLab 0.27.0 中 matplotlib 顯示中文標籤

使用 matplotlib 繪製資料圖的時候可能會涉及到本地化顯示,例如匯入 locale 包

import locale

為了繪製資料圖,匯入 matplotlib.pyplot 包

import matplotlib.pyplot

本例中以日期為例,匯入 datetime 包

import datetime

為了以本地格式顯示日期,設定地區,此處並未具體制定地區,而是使用 locale.LC_ALL ,從返回值可以看到是簡體中文

locale.setlocale(locale.LC_ALL, '')
'Chinese (Simplified)_China.936'

演示資料

data = range(-7,7)

演示資料的標籤

label = [(datetime.datetime.now() + datetime.timedelta(days=i)).strftime('%A') for i in data]

建立一個數據圖

figure1 = matplotlib.pyplot.figure(figsize=(10
,10))

新增一個座標軸

axes1 = figure1.add_subplot(1,1,1)

使用演示資料和演示標籤繪製柱狀圖

axes1.bar(data, data, tick_label=label)
<Container object of 14 artists>

儲存資料圖

figure1.savefig('1.png')

可以看到標籤都顯示成了空白方塊

未顯示中文

為了正確顯示中文,需要替換資料圖繪製時所使用的字型

matplotlib.pyplot.rcParams['font.sans-serif']=['SimHei']

建立第二個資料圖

figure2 = matplotlib.pyplot.figure(figsize=(10,10))

為第二個資料圖新增座標軸

axes2 = figure2.add_subplot(1,1,1)

使用演示資料和演示標籤繪製柱狀圖

axes2.bar(data, data, tick_label=label)
<Container object of 14 artists>

儲存資料圖

figure2.savefig('2.png')

可以看到資料標籤顯示正常了,但是負數的資料前面又出現了空白方塊。

未顯示負號

為此需要設定座標軸中不使用 unicode 顯示-減號

matplotlib.pyplot.rcParams['axes.unicode_minus']=False 

建立第三個資料圖

figure3 = matplotlib.pyplot.figure(figsize=(10,10))

為第三個資料圖新增座標軸

axes3 = figure3.add_subplot(1,1,1)

使用演示資料和演示標籤繪製柱狀圖

axes3.bar(data, data, tick_label=label)
<Container object of 14 artists>

儲存資料圖

figure3.savefig('3.png')

可以看到資料標籤和資料都正常了

正確顯示中文和負號