Matplotlib和seaborn都是python中用于绘图的第三方库,seaborn是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加的容易,在大多数情况下使用seaborn就能做出很具有吸引力的图。
在绘图的过程当中有时需要为图表加上标题,这是可能会出现中文乱码或者方块的情况,下面为大家介绍几种亲测有效的方法;
一、第一种方法是使用matplot的reParams属性来设置,具体如下:
sns.set_context("poster")
plt.bar([1,2,3,4,5],[3,6,9,2,5])
plt.title("柱形图")
plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文字体设置-黑体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
sns.set(font='SimHei') # 解决Seaborn中文显示问题
sns.set_context("poster")
plt.bar([1,2,3,4,5],[3,6,9,2,5])
plt.title("柱形图")
在我画图的过程当中,用上述方法可以解决大部分问题,但是有时候也会出现无法解决的情况
例如:
plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文字体设置-黑体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
sns.set(font='SimHei') # 解决Seaborn中文显示问题
sns.set_style("white")
plt.bar([1,2,3,4,5],[3,6,9,2,5])
sns.despine(left=True,bottom=True)#去除Seaborn图脊,默认去除上边和右边
plt.xticks([])
plt.yticks([])
plt.title("柱形图")
二、 第二种方法是使用matplotlib里面的font_manager工具,主要步骤如下:
(1)导入font_manager:
import matplotlib.font_manager as fm
(2)找到中文字体在电脑中的位置,导入中文字体库
zhfont1 = fm.FontProperties(fname='C:\Windows\Fonts\msyh.ttc') # 字体位置
具体操作:
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文字体设置-黑体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
sns.set(font='SimHei') # 解决Seaborn中文显示问题
zhfont1 = fm.FontProperties(fname='C:\Windows\Fonts\msyh.ttc') # 字体位置
sns.set_style("white")
plt.bar([1,2,3,4,5],[3,6,9,2,5])
sns.despine(left=True,bottom=True)#去除Seaborn图脊,默认去除上边和右边
plt.xticks([])
plt.yticks([])
plt.title("柱形图")
plt.title(u'柱形图', fontproperties=zhfont1) #title包含中文
用以上两种方法基本上就可以解决大多数问题了。
参考博文:
https://blog.csdn.net/u012654847/article/details/71436469