Matplotlib数据可视化实战-2绘制折线图(1)

函数plot是matplotlib.pyplot模块中的一个重要函数,用于在图形中绘制折线图。其基本用法是plot(x, y, [fmt], **kwargs),其中xy分别代表X轴和Y轴上的数据点,通常是以列表、数组或一维序列的形式给出。通常用的参数有:

基本参数

  • x, y:数组(array-like)或可迭代对象,分别表示X轴和Y轴的数据点。

线条样式参数

  • linestyle 或 ls:线条样式。可选值有 -(实线)、--(虚线)、-.(点划线)、:(点线)、None(无线条)、' '(空白线)、''(默认)、'solid''dashed''dashdot''dotted'等。
  • linewidth 或 lw:线条宽度,以点为单位。
  • marker:数据点标记样式。可选值包括 'o'(圆圈)、'.'(点)、','(像素点)、's'(正方形)、'd'(菱形)、'p'(五边形)、'*'(星形)、'h'(六边形1)、'H'(六边形2)、'+'(加号)、'x'(x形状)、'D'(菱形双对角线)、'd'(窄菱形)、'|'(垂直线)、'_'(水平线)等。也可以是一个数字,表示自定义的标记。
  • markersize 或 ms:标记大小,以点为单位。
  • markerfacecolor 或 mfc:标记的填充颜色。
  • markeredgecolor 或 mec:标记的边缘颜色。
  • markeredgewidth 或 mew:标记边缘的宽度。

颜色参数

  • color 或 c:线条或标记的颜色。可以是字符串(如 'red''b' 等)、RGB元组(如 (0.1, 0.2, 0.5))、十六进制颜色代码(如 '#FF5733')等。

其他参数

  • label:线条的标签,用于图例。
  • alpha:透明度,0表示完全透明,1表示完全不透明。
  • visible:是否可见。
  • solid_capstyle:线条端点的样式。
  • dash_capstyle:线条虚线部分的端点样式。
  • solid_joinstyle:线条实线部分的连接样式。
  • dash_joinstyle:线条虚线部分的连接样式。

返回值

  • 一个或多个线条对象,取决于调用方式。

注意:以上只是plot函数的部分常用参数,matplotlib库提供了更多的参数和选项,可以根据需要进行更详细的定制。为了获取完整的参数列表和更多详细信息,可以查阅matplotlib的官方文档或使用Python的帮助功能(如 help(plt.plot))。

2.1绘制带有中文标题、坐标轴标签和图例的正弦、余弦图像

import matplotlib.pylab as pl

t = pl.arange(0.0, 2.0*pl.pi, 0.01)    # 自变量取值范围
s = pl.sin(t)                          # 计算正弦函数值
z = pl.cos(t)                          # 计算余弦函数值
pl.plot(t,                             # x轴坐标
        s,                             # y轴坐标
        label='正弦',                  # 标签
        color='red')                   # 颜色
pl.plot(t, z, label='余弦',
        lw=3, ls='--', color='blue')   # 3像素宽,虚线
pl.xlabel('x-变量',                    # 标签文本
          fontproperties='simhei',    # 字体
          fontsize=18)                 # 字号
pl.ylabel('y-正弦余弦函数值', fontproperties='simhei', fontsize=18)
pl.title('sin-cos函数图像',             # 标题文本
         fontproperties='simhei',      # 字体
         fontsize=24)                  # 字号
pl.legend(prop='SimSun')              # 创建、显示图例
pl.grid(alpha=0.7, ls='-.')            # 半透明网格线,点画线
pl.show()                              # 显示绘制的结果图像

2.2在绘制结果中添加水平线和垂直线 

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
# 绘制正弦曲线
plt.plot(x, y, 'r-', lw=2, label='sin')
# 在纵坐标-0.5和0.5处绘制两条水平直线,蓝色虚线
plt.axhline(-0.5, color='blue', ls='--', label='axhline')
plt.axhline(0.5, color='blue', ls='--')
# 在横坐标绘制垂直直线,绿色点划线
plt.axvline(np.pi, color='green', ls='-.', label='axvline')
# 设置y轴刻度位置和文本
plt.yticks([-1, -0.5, 0, 0.5, 1],
           ['-1', 'axhline', '0', 'axhline', '1'])
# 创建、显示图例
plt.legend()

plt.show()

 

2.3绘制陀螺线,只绘制采样点

import numpy as np
import matplotlib.pyplot as plt

# 4个圆周的角度,单位为弧度
theta = np.arange(0, 8*np.pi, 0.1)
r = np.arange(20, 20+len(theta))
# 在采样点位置处绘制红色圆圈
plt.plot(r*np.cos(theta), r*np.sin(theta), 'ro')

plt.show()

 

2.4同时绘制多条折线 


import numpy as np
import matplotlib.pyplot as plt

x = range(10)
# 10行3列随机数,每个都介于[20,50)区间内
y = np.random.randint(20, 50, (10,3))
# 绘制3条折线图,每列数据对应一条折线图
plt.plot(x, y, label=['a','b','c'])
plt.legend()

plt.show()

 

2.5同时绘制多条曲线 

import numpy as np
import matplotlib.pyplot as plt

x1 = np.arange(0, 2*np.pi, 0.01)
y1 = np.sin(x1)
x2 = np.arange(2*np.pi, 4*np.pi, 0.01)
y2 = np.cos(x2)
# 指定每条曲线的采样点位置和线条属性
lines = plt.plot(x1, y1, 'r-', x2, y2, 'b-.')
# 为两条曲线创建图例
plt.legend(lines, ['sin','cos'])

plt.show()

2.6绘制龟兔赛跑中兔子和乌龟的行走轨迹

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

# 时间轴
t = np.arange(0, 120, 0.5)
# 兔子的运行轨迹,分段函数
rabbit = np.piecewise(t,
                      [t<10, t>110],               # 兔子跑步的两个时间段
                      [lambda x:15*x,              # 兔子第一段时间的路程
                       lambda x:20*(x-110)+150,    # 第二个时间段的路程
                       lambda x:150]               # 兔子中间睡觉时的路程
                     )
tortoise = 3 * t                                   # 小乌龟一直在匀速前进
plt.plot(t, tortoise, label='乌龟', lw=3)
plt.plot(t, rabbit, label='兔子')
plt.title('龟兔赛跑', fontproperties='simhei', fontsize=24)
plt.xlabel('时间(秒)', fontproperties='simhei', fontsize=18)
plt.ylabel('与起点的距离(米)', fontproperties='simhei', fontsize=18)
myfont = fm.FontProperties(fname=r'C:\Windows\Fonts\simhei.ttf',
                           size=12)                # 设置图例中的中文字体和字号
plt.legend(prop=myfont)
plt.show()

2.7一笔绘制红色五角星

方法一:

import numpy as np
import matplotlib.pyplot as plt

# 外接圆半径
r = 6
angles = np.linspace(0, 2*np.pi, 5,
                     endpoint=False)
x = r * np.cos(angles)
y = r * np.sin(angles)

plt.plot([x[2],x[0],x[3],x[1],x[4],x[2]],
         [y[2],y[0],y[3],y[1],y[4],y[2]],
         'r')
# 设置坐标轴纵横比相等
plt.gca().set_aspect('equal')
plt.show()

 

方法2:

import numpy as np
import matplotlib.pyplot as plt

# 外接圆半径
r = 6
angles = np.linspace(0, 4*np.pi, 6)
x = r * np.sin(angles)
y = r * np.cos(angles)

plt.plot(x, y, 'r')
# 设置坐标轴纵横比相等
plt.gca().set_aspect('equal')
plt.show()

2.8使用三角函数绘制花瓣图案

import numpy as np
import matplotlib.pyplot as plt

r = 6
angles = np.arange(0, np.pi*2, 0.01)
# 把4改成其他数字可以得到不同图案
x = r * np.cos(4*angles) * np.cos(angles)
y = r * np.cos(4*angles) * np.sin(angles)
plt.plot(x, y, 'r')

# 设置坐标轴纵横比相等
plt.gca().set_aspect('equal')
# 显示图形
plt.show()

 

2.9某质点的初始速度和加速度已知,绘制该质点第5-20s的速度和位移的曲线

import numpy as np
import matplotlib.pyplot as plt

# 初始速度和加速度
v0, a = 3, 1.8
# 时间轴,第5到20秒
t = np.arange(5, 21)
# 速度
v = v0 + a*t
# 位移
x = v0*t + 0.5*a*t*t
# 创建左右两个子图
fig, (ax1, ax2) = plt.subplots(1, 2)
# 设置子图之间的水平间距,wspace单位为子图宽度的比例
plt.subplots_adjust(wspace=0.5)
# 选择左边子图为当前子图
plt.sca(ax1)
# 在当前子图中绘制折线图
plt.plot(t, v, c='red')
plt.title('时间-速度', fontproperties='simhei', fontsize=24)
plt.xlabel('时间(s)', fontproperties='simhei', fontsize=18)
plt.ylabel('速度(m/s)', fontproperties='simhei', fontsize=18)
# 设置坐标轴刻度范围
plt.xlim(5, 21)
plt.ylim(0, 40)

# 选择右边子图为当前子图
plt.sca(ax2)
# 在当前子图中绘制折线图
plt.plot(t, x, c='blue')
plt.title('时间-位移', fontproperties='simhei', fontsize=24)
plt.xlabel('时间(s)', fontproperties='simhei', fontsize=18)
plt.ylabel('位移(m)', fontproperties='simhei', fontsize=18)
plt.xlim(5, 21)
plt.ylim(0, 450)

plt.show()

3.10绘制误差线图 

import numpy as np
import matplotlib.pyplot as plt

x = [1, 3, 5, 8, 9]
y = [5, 9, 3, 5, 10]
plt.errorbar(x, y,    # 数据点位置
             xerr=1, yerr=[1,1,1,0.5,0.5],    # 两个方向的误差范围
             # 设置线条和端点符号
             # fmt='none'时表示不绘制数据点及连线,只绘制误差标记
             fmt='-.*',
             ecolor='orange',    # 误差线颜色
             errorevery=2,       # 每2个数据点绘制一个误差线
             lolims=True,        # 只绘制上侧的误差线
             xlolims=True,       # 只绘制右侧的误差线
             )

plt.show()

  • 20
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Py小趴

整理不易,感谢金主!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值