matplotlib使用的问题

一、中文显示乱码

在matplotlib中使用中文显示乱码,需要使用下面的代码来正常显示中文

plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签

二、正负号显示

matplotlib中会出现显示负号错误的问题

plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

三、内容显示

3.1 放置标签

for x, y in operator_id:
    # 显示标签,bar图可以使用,x,y是整数注意摆放位置
    plt.text(x + 0.05, y + 0.05, '%d' % y, ha='center', va='bottom')    

3.2 设置标签

plt.title("k-meas聚类分析")  # 设置图片的标题
plt.xlabel('user_id')  # 设置横坐标的标签值
plt.ylabel('user_action')  # 设置纵坐标的标签值
plt.grid()  # 设置网格
# bbox_to_anchor:表示放置标签的位置
# plt.legend(loc=2),可以用数字表示标签内放的位置
plt.legend(loc="center left", bbox_to_anchor=(1, 0.9), ncol=1)  # 标签外放

3.3 mark内容

mark的类型地址如下:https://matplotlib.org/api/markers_api.html#module-matplotlib.markers

四、刻度设置

使用以下的方法在matplotlib中设置区间范围

import matplotlib.pyplot as plt
plt.ylim(30, 60)   # 设置y的范围
plt.xlim(30, 60)   # 设置x的范围 

五、箭头绘制

使用以下的代码可以在matplotlib中绘制箭头

import matplotlib.pyplot as plt
# 参数意义:x的位置,y的位置,x的偏移量,y的偏移量,箭头宽,线宽,颜色
plt.arrow(x_2020[x + 1], y + 2.5, 0, 3.5, head_width=0.1, linewidth=6, color="red")

六、文本插入

使用以下的代码可以完成相应的文本插入

import matplotlib.pyplot as plt
# 参数意义:x的位置,y的位置,显示的数,以及位置,下面的是在正上方显示
plt.text(x_2020[x] + 0.1, y + 0.05, '%.2f' % y, ha='center', va='bottom')

七、图例的显示

使用下面的位置来显示图例,同时需要注意使用图例的时候也可以在legend中去声明label,也可以在图像中去声明label

import matplotlib.pyplot as plt
# 参数的意义,loc是位置的显示,可使用字符或者是数字代替。、
# bbox_to_anchor是偏移位置,从自左向右和自底向上的路径进行设置,y的设置(0,1)内是会贴在图片附近,否则就会远离图片
plt.legend(loc=2, bbox_to_anchor=(0, 0.93))

八、产生映射的坐标

我们在有的时候需要两个刻度来显示我们的内容,因此需要使用到两个刻度的问题

import matplotlib.pyplot as plt
# 使用下面的两个函数就可以完成相应的设置了
# 第一个坐标轴,这样就可以在里面编写内容
ax1 = plt.figure().subplots()
# 第二个坐标轴
ax2 = ax1.twinx()

九、注意

有时候会出现一些提示,可能原因有以下几点

1. 图形和设置的大小不一样
2. 出现了异常的范围:负号、中文等
原文地址:https://www.cnblogs.com/future-dream/p/13052348.html