Matplotlib绘图:plt?plt.subplots?plt.subplot?

一、图的个数及子图设置

1、基本绘图流程

  1. 创建画板(图形界面) : plt.figure() 可以省略,主要用于设置显示图形的大小
  2. 画图:plt.plot(x, y)
  3. 显示出来: plt.show( )

上述流程代码演示:

import matplotlib.pyplot as plt

x = [1,2,3]
y = [1,2,3]

plt.figure() #设置画板大小(此行可以省略)如:plt.figure(figsize=(10,8))表示画板的长为10,宽为8

plt.plot(x, y)
plt.show()

结果如图所示
在这里插入图片描述

2、plt.add_subplot( ):绘制多个图

import matplotlib.pyplot as plt

x = [1,2,3]
y = [1,2,3]

#1.创建一个画板
fig = plt.figure()

#2.在画板上绘制第一个子图(add_subplot(121)函数表示1行2列第1个子图)
ax1 = fig.add_subplot(121)
ax1.plot(x,y)   #该子图是折线图

#3.在画板上绘制第二个子图(add_subplot(122)函数表示1行2列第2个子图)
ax2 = fig.add_subplot(122)
ax2.scatter(x,y)    # 该子图是散点图

#4.显示图像
plt.show()

3、plt.subplot( ):绘制多个图


import matplotlib.pyplot as plt


x = [1,2,3]
y = [1,2,3]


#2.在画板上绘制第一个子图(plt.subplot(121)函数表示1行2列第1个子图)
#可以看出此种方式省略了plt.add_subplot( )方式中创建画板的步骤
ax1 = plt.subplot(121)
ax1.plot(x,y)   #该子图是折线图

#3.在画板上绘制第二个子图(add_subplot(122)函数表示1行2列第2个子图)
ax2 = plt.subplot(122)
ax2.scatter(x,y)    # 该子图是散点图

#4.显示图像
plt.show()

4、plt.subplots( ):一个步骤生成多个图(推荐使用)


import matplotlib.pyplot as plt


x = [1,2,3]
y = [1,2,3]


#1.直接生成1行2列的两个子图,分别作为对象返回给元组中的axe1和axe2
fig,(axe1,axe2) = plt.subplots(1,2)

#注意:若是只生成1个图,可以使用以下语句
# fig,axe = plt.subplots()

#2.画出子图
axe1.plot(x,y)   #该子图是折线图


axe2.scatter(x,y)   #该子图是散点图

#3.显示图
plt.show()


二、相关函数

1、折线图:plot( )

plt.plot(x, y, color="r", linestyle="--", marker="*", linewidth=1.0)

参数:

  • x:横坐标
  • y:纵坐标
  • color:线条颜色
  • linestyle:线条风格
  • marker:坐标点样式
  • linewidth:线条宽度

相关设置如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面函数显示的图形样式如下所示在这里插入图片描述

2、柱状图:bar()和barh()

(1)使用bar()函数绘制甘特图

import matplotlib.pyplot as plt


x_lable = [1, 2, 3, 4, 5]
y_lable = [2, 4, 6, 8, 10]

width_value = [1,1,1,1,1]

for i in range(0, len(x_lable)):
    plt.bar(x_lable[i], bottom= y_lable[i], width=width_value[i], height= 0.5, orientation ="horizontal")

plt.show()

各个参数示意图如下:
在这里插入图片描述
注意:使用以下代码同样可以绘制与上面方式一样的甘特图,区别在于以下方式绘制的甘特图只有一种颜色

import matplotlib.pyplot as plt


x_lable = [1, 2, 3, 4, 5]
y_lable = [2, 4, 6, 8, 10]

width_value = [1,1,1,1,1]

plt.bar(x_lable, bottom= y_lable, width=width_value, height= 0.5, orientation ="horizontal")

plt.show()

(2)使用barh()函数绘制甘特图(更好理解,推荐使用)

plt.barh(y, width, height=0.8, left=None, *, align=‘center’, **kwargs)

函数参数:

  • y: 条形的y轴坐标。
  • width:条形的宽度
  • height: 条形的高度,默认值0.8
  • left:条块左侧的x坐标。
  • align:条块底部与y轴坐标的对齐方式(默认为中间)
  • color:条块颜色
  • edgecolor:条块边缘的颜色
  • linewidth:线条宽度:可选参数。
import matplotlib.pyplot as plt

x_lable = [1, 2, 3, 4, 5]
y_lable = [2, 4, 6, 8, 10]

width_value = [1,1,1,1,1]

for i in range(len(x_lable)):
    plt.barh(y_lable[i], width = width_value[i], height=0.8, left=x_lable[i])
plt.show()

注意:此函数绘制出的图形和内容与使用bar( )函数绘制出来的完全一致,且更好理解,推荐使用。

3、坐标轴相关

(1)、设置坐标轴范围:axis( ),xlim( ),ylim( )

plt.axis([x_min, x_max, y_min, y_max])

参数:

  • x_min:x轴的起始坐标
  • x_max:x轴的终止坐标
  • y_min:y轴的起始坐标
  • y_max:y轴的终止坐标

单独想要控制x轴取值:

plt.xlim(x_min, x_max)

单独想要控制y轴的取值:

plt.ylim(y_min, y_max)

(2)、设置坐标轴标签:xlabel( ),ylabel( )

plt.xlabel("x - label") #将x轴标签设置为"x - label"
plt.ylabel("y - label") #将y轴标签设置为"y - label"

结果如下:
在这里插入图片描述

(3)、设置坐标轴刻度及要显示内容:xticks(),yticks()

plt.xticks(locs, [labels], **kwargs) 

参数:

  • locs:显示的位置 (可以分刻度)
  • labels:locs这些位置上的标签,labels的默认值为和locs相同,若该值为空,表示不显示内容
import numpy as np
import matplotlib.pyplot as plt
x = range(1,13,1)
y = range(1,13,1)
plt.plot(x,y)
plt.xticks(x, ('Tom','Dick','Harry','Sally','Sue','Lily','Ava','Isla','Rose','Jack','Leo','Charlie'))
plt.show()

yticks()与之类似

(4)、设置x轴和y轴的取值范围:axis( )

plt.axis([a, b, c, d])

设置x轴的范围为[a, b],y轴的范围为[c, d]

(5)、设置坐标轴上刻度及字体格式:tick_params()

https://blog.csdn.net/qq_35240640/article/details/89478662

4、设置图名:title( )

plt.title("picture")

5、设置图例:legend( )

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y1 = [1.2, 2.5, 4.5, 7.3]
y2 = [4,4,4,4]

# 1.通过设置来表示是哪一条线
l1,= plt.plot(x, y1, color="r")
l2,= plt.plot(x, y2, color="b")

# 2.调用函数legend()来设置图例
plt.legend(handles=[l1, l2], labels=['up', 'down'],  loc='upper left')

plt.show()

参数:

  1. handles:要设置的是哪些线
  2. lables:图线的名称分别是什么
  3. loc:图例的位置

loc:图例的位置的取值:
注意:上中下和左右可以两两进行组合

  • 上 :upper
  • 中:center
  • 下:lower
  • 左:left
  • 中:center
  • 右: right
  • 自适配最佳放置位置:best

6、添加文本:text( )

matplotlib.pyplot.text(x, y, s, fontdict=None, **kwargs)

参数:

  • x,y:放置文本的坐标。浮点数。必备参数。
  • s:文本。字符串。必备参数。
  • fontsize:加标签字体大小,取整数。
  • verticalalignment:垂直对齐方式 ,可选 ‘center’ ,‘top’ , ‘bottom’,‘baseline’ 等
  • horizontalalignment:水平对齐方式 ,可以填 ‘center’ , ‘right’ ,‘left’
  • rotation:标签的旋转角度,以逆时针计算,取整
  • family :设置字体
  • style: 设置字体的风格
  • weight:设置字体的粗细 color:注释文本内容的字体颜色
  • 5
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值