Mac下python3.0使用matplotlib中文乱码(方块)

方法一:

1. 添加SimHei字体(simhei.ttf文件)

     到/Users/rise/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/(下载地址:黑体字体simhei.ttf

2. 删除~/.matplotlib/下的所有缓存文件

     rm -rf ~/.matplotlib/*.cache

3. 删除~/.matplotlib/下的fontList.json

     rm -f ~/.matplotlib/fontList.json

4. 添加代码

plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置加载的字体名
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题

 

方法二:

1.  导包

from matplotlib.font_manager import FontProperties

2. 添加代码

def get_chinese_font():
    return FontProperties(fname='/System/Library/Fonts/PingFang.ttc')

然后哪个地方用到中文了,就添加fontproperties=get_chinese_font(),如下:

plt.figure()
# alpha为透明度,加label是为了使用legend
plt.bar(bar_locs, member_mean_duration_list, width=bar_width, color='g', alpha=0.7, label='会员')
# 这个柱子一定要加偏移量,否则会和第一组柱子重合
plt.bar(bar_locs+bar_width, casual_mean_duration_list, width=bar_width, color='r', alpha=0.7, label='非会员')
# 默认刻度都是在第一组的柱子上,现在我们调整到两组柱子的中间, 并用自定义值替换
plt.xticks(bar_locs + bar_width / 2, xtick_labels, rotation=45, fontproperties=get_chinese_font())
plt.ylabel('平均骑行时间(单位:分钟)', fontproperties=get_chinese_font())
plt.title('柱状图', fontproperties=get_chinese_font())
plt.legend(loc='best', prop=get_chinese_font())

plt.tight_layout()
plt.savefig(os.path.join(output_path, 'group_bar_chart.png'))
plt.show()

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值