pandas 作图无法显示中文

来源:互联网 发布:戴森无叶风扇 知乎 编辑:程序博客网 时间:2024/04/30 15:41

最近开始使用 pandas 处理可视化数据,挖掘信息。但是在作图时遇到,无法显示中文的问题。

下面这段代码是统计 fujian1.csv 文件中 City 所在列中各个城市出现次数的代码。可是作图直方图时在 x 轴上无法显示中文。

import pandas as pd# Reading data locallydf = pd.read_csv('fujian1.csv', encoding='gbk')counts = df['City'].value_counts()counts[counts > 1000].plot(kind = 'bar')

查了一些资料,找到的原因是 matplotlib 包默认只支持 ASCII 码,不支持 unicode 码。

解决方法,就是需要将 matplotlib 的安装目录下的 matplotlibrc 配置文件修改一下,将font.family 部分(大概在139行左右)注释去掉,并且在 font.seriffont.sans-serif 支持字体加上一个中文字体,如 SimHei:

font.family         : sans-serif#font.style          : normal#font.variant        : normal#font.weight         : medium#font.stretch        : normal# note that font.size controls default text sizes.  To configure# special text sizes tick labels, axes, labels, title, etc, see the rc# settings for axes and ticks. Special text sizes can be defined# relative to font.size, using the following values: xx-small, x-small,# small, medium, large, x-large, xx-large, larger, or smaller#font.size           : 12.0font.serif          : SimHei, Bitstream Vera Serif, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, seriffont.sans-serif     : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif#font.cursive        : Apple Chancery, Textile, Zapf Chancery, Sand, cursive#font.fantasy        : Comic Sans MS, Chicago, Charcoal, Impact, Western, fantasy#font.monospace      : Bitstream Vera Sans Mono, Andale Mono, Nimbus Mono L, Courier New, Courier, Fixed, Terminal, monospace

最终实现了正常显示中文。

这里写图片描述

0 0
原创粉丝点击