前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【matplotlib】1-使用函数绘制图表

【matplotlib】1-使用函数绘制图表

作者头像
程序员小涛
发布2022-12-05 15:26:32
1.2K0
发布2022-12-05 15:26:32
举报
文章被收录于专栏:涛的程序人生涛的程序人生

文章目录

使用函数绘制图表

1.绘制matplotlib图表组成元素的主要函数

在一个图形输出窗口中,底层是一个Figure实例,通常称之为画布,包含一些可见和不可见的元素。在画布上的就是图形,图形是一些Axes实例,里面几乎包含了matplotlib的组成元素,例如坐标轴、刻度、标签、线和标记等。

2.准备数据

我们可以导入第三方包NumPy和快速绘图模块pyplot,matplotlib库就是建立在科学计算包NumPy基础之上的Python绘图库。

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.5, 3.5, 100) # 在0.5到3.5之间均匀地取100个数
y = np.sin(x)
y1 = np.random.randn(100) # 在标准正态分布中随机地取100个数

3.函数用法

3.1函数plot()–展现变量的趋势变化

函数功能: 展现变量的趋势变化 调用签名: plt.plot(x, y, ls=‘-’, lw=2, label=‘plot figure’) 参数说明:

  • x: x轴上的数值
  • y: y轴上的数值
  • ls: 折线图的线条风格
  • lw: 折线图的线条宽度
  • label: 标记图形内容的标签文本
代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.05, 10, 1000)
y = np.cos(x)

plt.plot(x, y, ls='-', lw=2, label='cos(x)')
plt.legend()  # 显示图例

plt.show()
plot
plot

3.2函数scatter()–寻找变量之间的关系

函数功能: 寻找变量之间的关系 调用签名: plt.scatter(x, y, c=‘b’, label=‘scatter figure’) 参数说明:

  • x: x轴上的数值
  • y: y轴上的数值
  • c: 散点图的标记颜色
  • label: 标记图形内容的标签文本
代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.05, 10, 1000)
y = np.random.randn(1000)

plt.scatter(x, y, c='b', label='scatter plot')
plt.legend()

plt.show()
scatter
scatter

3.3函数xlim()–设置x轴的数值显示范围

函数功能: 设置x轴的数值显示范围 调用签名: plt.xlim(xmin, xmax) 参数说明:

  • xmin: x轴上的最小值
  • xmax: x轴上的最大值
  • 平移性: 上面的函数功能,调用签名和参数说明同样可以平移到函数ylim()上
代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.05, 10, 1000)
y = np.random.randn(1000)

plt.scatter(x, y, c='b', label='scatter plot')
plt.legend()

plt.xlim(0.05, 10)
plt.ylim(0, 1)

plt.show()
scatter
scatter

3.4函数xlabel()–设置x轴的标签文本

函数功能: 设置x轴的标签文本 调用签名: plt.xlabel(string) 参数说明:

  • xmin: 标签文本的内容
  • 平移性: 上面的函数功能,调用签名和参数说明同样可以平移到函数ylabel()上
代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.05, 10, 1000)
y = np.sin(x)

plt.plot(x, y, ls='-', lw=2, c='c', label='sin(x)')
plt.legend()  # 显示图例

plt.xlabel('x-axis')
plt.ylabel('y-axis')

plt.show()
sin
sin

3.5 函数grid()–绘制刻度线的网格线

函数功能: 绘制刻度线的网格线 调用签名: plt.grid(linestyle=‘:’, color=‘r’) 参数说明:

  • linestyle: 网格线的线条风格
  • color: 网格线的线条颜色
代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.05, 10, 100)
y = np.log(x)

plt.plot(x, y, ls='-.', lw=2, c='c', label='y=log(x)')
plt.legend()

plt.grid(linestyle=':', color='r')

plt.show()
log
log

3.6 函数axhline()–绘制平行与x轴的水平参考线

函数功能: 绘制平行与x轴的水平参考线 调用签名: plt.axhline(y=0.0, c=‘r’, ls=‘–’, lw=2) 参数说明:

  • y: 水平参考线的出发点
  • c: 参考线的线条颜色
  • ls: 参考线的线条风格
  • lw: 参考线的线条宽度
  • 平移性: 上面的函数功能,调用签名和参数说明同样可以平移到函数axvline()上
代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.05, 10, 100)
y = np.sin(x)

plt.plot(x, y, ls='-.', lw=2, c='c', label='sin(x)')
plt.legend()

plt.axhline(y=0.0, c='r', ls='--', lw=2)
plt.axvline(x=4.0, c='r', ls='--', lw=2)

plt.show()
sin
sin

3.7 函数axvspan()–绘制垂直于x轴的参考区域

函数功能: 绘制垂直于x轴的参考区域 调用签名: plt.axvspan(xmin=1.0, xmax=2.0, facecolor=‘y’, alpha=0.3) 参数说明:

  • xmin: 参考区域的起始位置
  • xmax: 参考区域的终止位置
  • facecolor: 参考区域的填充颜色
  • alpha: 参考区域的填充颜色的透明度
  • 平移性: 上面的函数功能,调用签名和参数说明同样可以平移到函数axhspan()上
代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.05, 10, 1000)
y = np.sin(x)

plt.plot(x, y, ls='-.', lw=2, c='c', label='sin(x)')
plt.legend()

plt.axvspan(xmin=4.0, xmax=6.0, facecolor='y', alpha=0.3)
plt.axhspan(ymin=0.0, ymax=0.5, facecolor='y', alpha=0.3)

plt.show()
sin
sin

3.8 函数annotate()–添加图形内容细节的指向型注释文本

函数功能: 添加图形内容细节的指向型注释文本 调用签名: plt.annotate(string,xy=(np.pi/2, 1.0), xytext=((np.pi/2)+0.15, 1.5), weight=‘bold’, color=‘b’, arrowprops=dict(arrowstyle=‘->’, connectionstyle=‘arc3’, color=‘b’)) 参数说明:

  • string: 图形内容的注释文本
  • xy: 被注释的图形内容的位置坐标
  • xytext: 注释文本的位置坐标
  • weight: 注释文本的字体粗细风格
  • color: 注释文本的字体颜色
  • arrowprops: 指示被注释内容的箭头的属性字典
代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.05, 10, 1000)
y = np.sin(x)

plt.plot(x, y, ls='-.', lw=2, c='c', label='sin(x)')
plt.legend()

plt.annotate("maximum",
             xy=(np.pi/2, 1.0),
             xytext=(np.pi/2+1.0, 0.8),
             weight='bold',
             color='b',
             arrowprops=dict(arrowstyle='->', connectionstyle='arc3', color='b'))

plt.show()
sin
sin

3.9 函数text()–添加图形内容细节的无指向型注释文本

函数功能: 添加图形内容细节的无指向型注释文本 调用签名: plt.text(x, y, string, weigth=‘bold’, color=‘b’) 参数说明:

  • x: 注释文本内容所在位置的横坐标
  • y: 注释文本内容所在位置的纵坐标
  • string: 注释文本内容
  • weight: 注释文本的字体粗细风格
  • color: 注释文本的字体颜色
代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.05, 10, 1000)
y = np.sin(x)

plt.plot(x, y, ls='-', lw=2, c='c', label='sin(x)')
plt.legend()  # 显示图例

plt.text(3.10, 0.09, "y=sin(x)", weight="bold", color="b")

plt.show()
sin
sin

3.10 函数title()–添加图形内容的标题

函数功能: 添加图形内容的标题 调用签名: plt.title(string) 参数说明:

  • string: 图形内容的标题文本
代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.05, 10, 1000)
y = np.sin(x)

plt.plot(x, y, ls='-', lw=2, c='c', label='sin(x)')
plt.legend()  # 显示图例

plt.title('sin(x)')  # 标题

plt.show()
sin
sin

3.11 函数legend()–标识不同图形的文本标签图例

函数功能: 标识不同图形的文本标签图例 调用签名: plt.legend(loc=‘lower left’) 参数说明:

  • loc: 图例在图中的地理位置
代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.05, 10, 1000)
y = np.sin(x)

plt.plot(x, y, ls='-', lw=2, c='c', label='sin(x)')
plt.legend(loc='lower left')  # 显示图例

plt.title('sin(x)')  # 标题

plt.show()
sin
sin

函数综合应用

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm as cm  # color map

# define data
x = np.linspace(0.5, 3.5, 100)
y = np.sin(x)
y1 = np.random.randn(100)

# scatter figure
plt.scatter(x, y1, c='0.25', label='scatter figure')

# plot figure
plt.plot(x, y, ls='--', lw=2, c='r', label='plot figure')

# some clean up (removing chartjunk)
for spine in plt.gca().spines.keys():
    if spine == "top" or spine == "right":
        plt.gca().spines[spine].set_color('none')

# turn bottom ticks for x-axis on
plt.gca().xaxis.set_ticks_position('bottom')
# set tick_line position of bottom

# turn left ticks for y-axis on
plt.gca().yaxis.set_ticks_position('left')
# set tick_line position of left

# set x,yaxis limit
plt.xlim(0.0, 4.0)
plt.ylim(-3.0, 3.0)

# set axes labels
plt.xlabel('x_axis')
plt.ylabel('y_axis')

# set x,yaxis grid
plt.grid(True, ls=':', color='r')

# add a horizontal line across the axis
plt.axhline(y=0.0, c='r', ls='--', lw=2)

# add a vertical span across the axis
plt.axvspan(xmin=1.0, xmax=2.0, facecolor='y', alpha=0.3)

# set annotating info
plt.annotate('maximum', xy=(np.pi / 2, 1.0),
             xytext=(np.pi / 2 + 0.15, 1.5), weight='bold', color='r',
             arrowprops=dict(arrowstyle='->', connectionstyle='arc3', color='r'))

plt.annotate('spines', xy=(0.75, -3),
             xytext=(0.35, -2.25), weight='bold', color='b',
             arrowprops=dict(arrowstyle='->', connectionstyle='arc3', color='b'))

plt.annotate('', xy=(0, -2.78),
             xytext=(0.4, -2.32),
             arrowprops=dict(arrowstyle='->', connectionstyle='arc3', color='b'))

plt.annotate('', xy=(3.5, -2.98),
             xytext=(3.6, -2.70),
             arrowprops=dict(arrowstyle='->', connectionstyle='arc3', color='b'))

# set text info
plt.text(3.6, -2.70, "'|' is tickline", weight='bold', color='b')
plt.text(3.6, -2.95, "3.5 is ticklabel", weight='bold', color='b')

# set title
plt.title('structure of matplotlib')

# set legend
plt.legend()

plt.show()
structure
structure
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 使用函数绘制图表
    • 1.绘制matplotlib图表组成元素的主要函数
      • 2.准备数据
        • 3.函数用法
          • 3.1函数plot()–展现变量的趋势变化
          • 3.2函数scatter()–寻找变量之间的关系
          • 3.3函数xlim()–设置x轴的数值显示范围
          • 3.4函数xlabel()–设置x轴的标签文本
          • 3.5 函数grid()–绘制刻度线的网格线
          • 3.6 函数axhline()–绘制平行与x轴的水平参考线
          • 3.7 函数axvspan()–绘制垂直于x轴的参考区域
          • 3.8 函数annotate()–添加图形内容细节的指向型注释文本
          • 3.9 函数text()–添加图形内容细节的无指向型注释文本
          • 3.10 函数title()–添加图形内容的标题
          • 3.11 函数legend()–标识不同图形的文本标签图例
        • 函数综合应用
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档