matplotlib的使用

numpy知识转到numpy笔记

jupyter中matplotlib图表显示中文

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

基本用法

# 基本用法
x = np.linspace(-1, 1, 50)
y1 = 2 * x + 1
y2 = x ** 2
plt.plot(x, y1) # 画线性图片
plt.plot(x, y2, color='red', linewidth='5', linestyle='--')
plt.show()

matplotlib的使用

坐标轴的设置

# 坐标轴的设置
x = np.linspace(-1, 1, 50)
y1 = 2 * x + 1
y2 = x ** 2

plt.plot(x, y1) # 画线性图片
plt.plot(x, y2, color='red', linewidth='5', linestyle='--')

# 设置坐标轴的取值范围
plt.xlim(-1, 2)
plt.ylim(-2, 3)

# 设置坐标轴名称
plt.xlabel("x label")

# 设置坐标轴的角标
new_x_ticks = np.linspace(-1, 2, 5)
plt.xticks(new_x_ticks)
new_y_ticks = np.linspace(-3, 3, 6)
plt.yticks(new_y_ticks)

# 将角标换为对应描述,需要一一对应
d = {"bad" : -3, "normal" : 1.5, "good" : 2, "really good" : 3}
plt.yticks(list(d.values()), list(d.keys()))

plt.show()

matplotlib的使用

设置坐标轴位置

# 设置坐标轴的位置
x = np.linspace(-1, 1, 50)
y1 = 2 * x + 1
y2 = x ** 2

plt.plot(x, y1) # 画线性图片
plt.plot(x, y2, color='red', linewidth='5', linestyle='--')

# gca = get current axis
# 默认坐标轴left top right bottom
ax = plt.gca()
ax.spines['top'].set_color('none') # 不显示顶部轴
ax.spines['right'].set_color('none') # 不显示顶部轴

# 根据数值定位坐标轴位置,x轴的位置数值为y轴上的数值
ax.spines['bottom'].set_position(('data', 0)) 
ax.spines['left'].set_position(('data', 0))

plt.show()

matplotlib的使用

图例设置

# 图例的设置
x = np.linspace(-1, 1, 50)
y1 = 2 * x + 1
y2 = x ** 2

plt.plot(x, y1, label='line1') # 画线性图片
plt.plot(x, y2, color='red', linewidth='5', linestyle='--', label='line2')

plt.legend(loc='best') # 自动找最佳位置放置图例

plt.show()

matplotlib的使用

散点图

# 散点图
y = np.random.randint(0, 100, 300)
plt.scatter(range(1, 301), y, s=5, c='red')
# s设置点的大小,c设置颜色

matplotlib的使用

柱状图

# 柱状图
np.random.seed(1)
y = np.random.randint(0, 20, 10)

plt.bar(np.arange(10), y, facecolor='pink', edgecolor='black')
# facecolor设置条形的颜色
# edgecolor设置条形边框颜色

# 显示数值
for i in range(len(y)) :
    plt.text(i, y[i], y[i], ha='center')
    # 前两个参数表述显示数值的坐标
    # 第三个参数表示要显示的数值
    # ha设置水平居中方式

matplotlib的使用

一张图显示多个图表

# 多图显示, 一图多图
plt.subplot2grid((2, 2), (0, 0), colspan=2)
# 第一个参数表示分割为2*2的4个小快
# 第二个参数表示当前图片的位置(坐标)
# 第三个参数表示图片的跨度,colspan跨列,rowspan跨行
plt.plot([0, 1], [0, 4])

plt.subplot2grid((2, 2), (1, 0))
plt.scatter([0,1], [1, 3], c='red')

plt.subplot2grid((2, 2), (1, 1))
plt.bar([0,1], [1, 3])

matplotlib的使用


持续更新…

上一篇:2021-05-11


下一篇:绝对路径、相对路径通俗理解: