1、在使用matplotlib处理数据实现可是化操作的时候,处于语言习惯,经常会使用中文做图表备注,而中文显示会出现异常,如下图:
中文显示异常
那如何解决呢,实际上我们只需要在代码中添加两行内容即可:
# 中文处理
16 plt.rcParams['font.sans-serif'] = ['SimHei']
17 plt.rcParams['axes.unicode_minus'] = False
matplotlib.rcparams()函数,在载入matplotlib模块时会被调用返回配置字典rpcParams,用户可以通过上面的方式修改字典中的参数,解决中文乱码问题。
下面附带该实例的完整代码:
1 """ 2 作者:虞曦非虞兮 3 功能:掷骰子 4 版本:V5.0 5 日期:2018/12/8 6 2.0新增功能:模拟掷2个骰子 7 3.0新增功能:可视化掷骰子结果 8 4.0新增功能:对结果进行简单的数据分析和统计 9 5.0新增功能:使用科学计算库简化程序,完善数据可视化结果 10 """ 11 import matplotlib.pyplot as plt 12 import numpy as np 13 14 15 # 中文处理 16 plt.rcParams['font.sans-serif'] = ['SimHei'] 17 plt.rcParams['axes.unicode_minus'] = False 18 19 20 def main(): 21 """ 22 主函数 23 :return: 24 """ 25 total_times = 10000 26 27 # 初始化列表 28 roll1_arr = np.random.randint(1, 7, size=total_times) 29 roll2_arr = np.random.randint(1, 7, size=total_times) 30 31 roll_arr = roll1_arr + roll2_arr 32 hist, bins = np.histogram(roll_arr,bins=range(2,14)) 33 print(hist) 34 print(bins) 35 36 # 数据可视化 37 tick_lables = ['2点', '3点', '4点', '5点', '6点', '7点', '8点', '9点', '10点', '11点', '12点'] 38 tick_pos = np.arange(2, 13)+0.5 39 plt.xticks(tick_pos, tick_lables) 40 plt.title('骰子点数统计') 41 plt.xlabel('点数') 42 plt.ylabel('频率') 43 plt.hist(roll_arr, bins=range(2, 14), density=1, edgecolor='black', linewidth=0.5,rwidth= 0.8) 44 plt.show() 45 46 if __name__ == '__main__': 47 main()