日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Pandas matplotlib 无法显示中文

發(fā)布時(shí)間:2025/3/21 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pandas matplotlib 无法显示中文 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • Pandas 無法顯示中文解決方案
      • Pandas在繪圖時(shí),會(huì)顯示中文為方塊,主要原因
      • 運(yùn)行效果展示
      • win自帶中文字體表
    • matplotlib 解決方案
      • 一 動(dòng)態(tài)修改配置
      • 二 設(shè)置自定義字體
        • 代碼實(shí)現(xiàn)
        • 運(yùn)行結(jié)果展示
        • win自帶字體庫(kù)路徑
    • Ubutnu下Matplotlib的永久解決方案
      • 下載或在系統(tǒng)內(nèi)尋找字體文件
      • 移動(dòng)字體文件到Matplotlib的相應(yīng)位置
      • 運(yùn)行代碼
    • 參考

Pandas 無法顯示中文解決方案

Pandas在繪圖時(shí),會(huì)顯示中文為方塊,主要原因

有二:

  • matplotlib 字體問題
  • seaborn 字體問題

只需要在文件開始動(dòng)態(tài)設(shè)置字體配置就可以了,但是要注意,字體設(shè)置可能需要嘗試多次,比如我一開始設(shè)置的win10中的’SamKi’,但是運(yùn)行結(jié)果仍然是中文顯示方塊,后來我換成了’KaiTi’才正常顯示的中文,具體原因可能只是某種字體獲取失敗而已.(本部分最后有win自帶中文字體表)

import matplotlib as mpl mpl.rcParams['font.sans-serif'] = ['KaiTi'] mpl.rcParams['font.serif'] = ['KaiTi'] # mpl.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負(fù)號(hào)'-'顯示為方塊的問題,或者轉(zhuǎn)換負(fù)號(hào)為字符串import seaborn as sns sns.set_style("darkgrid",{"font.sans-serif":['KaiTi', 'Arial']})

運(yùn)行效果展示

win自帶中文字體表

matplotlib 解決方案

一 動(dòng)態(tài)修改配置

代碼和第一部分的前半部分一致

import matplotlib as mpl mpl.rcParams['font.sans-serif'] = ['KaiTi'] mpl.rcParams['font.serif'] = ['KaiTi'] # mpl.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負(fù)號(hào)'-'顯示為方塊的問題,或者轉(zhuǎn)換負(fù)號(hào)為字符串

二 設(shè)置自定義字體

代碼實(shí)現(xiàn)

這種方式較為復(fù)雜,博主不建議這種方式:

import numpy as np import pylab as pl import matplotlib.font_manager as fmmyfont = fm.FontProperties(fname=r'D:\Fonts\simkai.ttf') # 設(shè)置字體 t = np.arange(0.0,2.0 * np.pi,0.01) # 自變量取值范圍 s = np.sin(t) # 計(jì)算正弦函數(shù)值 z = np.cos(t) # 計(jì)算余弦函數(shù)值 pl.plot(t,s,label='正弦') pl.plot(t,z,label='余弦') pl.xlabel('x-變量',fontproperties=myfont,fontsize=24) #設(shè)置標(biāo)簽 pl.ylabel('y-正弦余弦函數(shù)值',fontproperties=myfont,fontsize=24) pl.title('sin-cos函數(shù)圖像',fontproperties=myfont,fontsize=32) #圖像標(biāo)題 pl.legend(prop=myfont) pl.show()

運(yùn)行結(jié)果展示

win自帶字體庫(kù)路徑

  • C:\Windows\Fonts\ 內(nèi)含大量字體
  • 注意在該文件夾下,字體文件的名字和其他文件夾下顯示的不一致,請(qǐng)使用右鍵屬性-常規(guī)中文件名,或者使用拷貝到其他文件夾后顯示的字體文件名字

Ubutnu下Matplotlib的永久解決方案

下載或在系統(tǒng)內(nèi)尋找字體文件

首先去隨便下載一個(gè)中文字體(*.ttf)文件,最好是黑體,楷體,宋體等微軟本來自帶的字體。
點(diǎn)擊安裝之后,可以通過下面的命令查看字體,注意獲取字體的英文名字。如果已經(jīng)提前知道,就可以不獲取了,或者直接打開ttf文件一般里邊會(huì)有英文名字的備注。不過還是直接查看一下,直接復(fù)制英文名字。比較保險(xiǎn)

cd ~/.cache fc-list :lang=zh-cn

移動(dòng)字體文件到Matplotlib的相應(yīng)位置

然后將下載的字體放入Matplotlib的相應(yīng)位置
比如我的位置是

/home/fonttian/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf /home/fonttian/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc

然后上跳兩級(jí)找到matplotlibrc文件,并打開matplotlibrc。
找到兩個(gè)字段取消注釋,并修改

# 本人此處使用楷體 font.family : KaiTi axes.unicode_minus : False

然后最好刪除一下Matplotlib的緩存。

rm ~/.cache/matplotlib -R

運(yùn)行代碼

然后略微修改之前的代碼,然后運(yùn)行測(cè)試即可

import numpy as np import pylab as plt = np.arange(0.0,2.0 * np.pi,0.01) # 自變量取值范圍 s = np.sin(t) # 計(jì)算正弦函數(shù)值 z = np.cos(t) # 計(jì)算余弦函數(shù)值 pl.plot(t,s,label='正弦') pl.plot(t,z,label='余弦') pl.xlabel('x-變量',fontsize=24) #設(shè)置標(biāo)簽 pl.ylabel('y-正弦余弦函數(shù)值',fontsize=24) pl.title('sin-cos函數(shù)圖像',fontsize=32) #圖像標(biāo)題 pl.show()

參考

  • Matplotlib輸出中文顯示問題,內(nèi)含mac操作系統(tǒng)字體庫(kù)
  • github的帖子,pandas無法顯示中文的問題

總結(jié)

以上是生活随笔為你收集整理的Pandas matplotlib 无法显示中文的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。