Matplotlib - 2. 绘制线 (line) / 点(marker)

说明:可能 Matplotlib.pyplot.plot 官方文档 的英文内容和排版对于初学者来说不太友好,所以我对它的内容进行了归纳和总结!【ps: 至少我本人很喜欢归纳完的东西,感觉有条理】

1.  API 格式及说明

plot([x], y, [fmt], *, data=None, **kwargs) # 同一个图绘制单线
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs) # 同一个图里绘制多条线

(1) x, y: 传入的x 坐标和y坐标的值,类型为 list 或者 numpy.array。如果x没有传入值,则默认为 range(len(y)),也就是 [0, 1 .... len(y)-1] 

(2) fmt:传入的是线/ 点的基本格式: fmt = '[marker][line][color]' 类型为 str。其中:我只列举部分常用示例,全部的示例可参考:matplotlib.pyplot.plot — Matplotlib 3.4.3 documentation

 

所以 fmt 可表示如下:( '-r : 红色实线 )  ('y--': 红色虚线) ('s-b': 点是正方形的蓝色实线) 默认为 '-b'

(3) data: 带标签/索引的数据,如dict,pandas.DataFame 等,可以用 data['x'] / data['y'] 来表示x / y

import matplotlib.pyplot as plt

test_dict = {
    'a': [1, 2, 3, 4, 5],
    'b': [6, 2, 2, 1, 3]
}
plt.plot('a', 'b', '.-r', data=test_dict)
plt.show()

 (4) 关键字参数:**kwargs。可以使用Line2D属性作为关键字参数,以便对外观进行更多控制。Line2D属性可以和 fmt 混用,在属性重复下**kwargs优先级高,示例如下: 

【Line2D的属性 color = 'red' 和 fmt 中的 'g'(绿色) 重复,但结果展示红色】

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [6, 2, 2, 1, 3]
plt.plot(x, y, 'ro--', linewidth=4, markersize=12, color='green')
plt.show()

 2. 绘制多组数据

有几种方式都可以实现在一张图中绘制多组数据

(1) 第一种就是很简单的方式,即多次执行plot函数

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
x1 = [1, 2, 3]
y = [6, 2, 2, 1, 3]
y1 = [4, 5, 1]
plt.plot(x, y, 'ro--', linewidth=4, markersize=12, color='green')
plt.plot(x1, y1, 'ro--')
plt.show()

 (2) 第二种是 2D arrays,x 对应多个y值。

如 x = [1, 2, 3] y = np.array([[2, 3], [1, 5], [6, 7]])。转换成线的意思就是有两组线:( x = [1, 2, 3], y = [2, 1, 6] ) 和 (x = [1,2,3], y = [3,5,7])

import numpy as np
import matplotlib.pyplot as plt

x = [1, 2, 3]
y = np.array([[2, 3], [1, 5], [6, 7]])
plt.plot(x, y, linewidth=4)
plt.show()

 (3) 第三种就是在 前面的标题:【1.  API 格式及说明】中的第二行

plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [6, 2, 2, 1, 3]

x1 = [1, 2, 3]
y1 = [4, 5, 1]

plt.plot(x, y, 'r^-', x1, y1, 'g.-')
plt.show()

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: matplotlib.pyplot.plot 是一个用于在 Python绘制图像的函数。它可以用来绘制图、线图、柱状图等各种类型的图像。常用参数有 x 和 y,分别表示横坐标和纵坐标的数据。还可以使用其他参数来设置图像格式,如颜色、线宽等。 ### 回答2: matplotlib.pyplot.plot是Python数据可视化库matplotlib中的一个函数,它可以将数据绘制线性、条状、散等不同形式的图形展示。在数据分析与可视化领域,Matplotlib是一个广泛使用的Python可视化库,它提供了丰富的功能可以帮助我们更直观地呈现数据。 matplotlib.pyplot.plot通过指定数据的x轴和y轴的值来绘制图形,可以设置线条的颜色、宽度、样式以及标签等,同时也支持添加图例和标题。 例如,我们可以使用以下代码创建一个简单的折线图: ```python import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) y = np.sin(x) plt.plot(x, y, color='blue', linewidth=1.5, linestyle='-', label='sin(x)') plt.title('Line plot of sin(x)') plt.xlabel('x') plt.ylabel('sin(x)') plt.legend(loc='lower left') plt.show() ``` 在这个例子中,我们使用numpy生成一个等差序列作为x轴数据,使用np.sin()来计算对应的y轴数据。在plot函数中,我们指定x和y轴数据,设置线条颜色为蓝色,线宽为1.5,线条样式为实线,设置线条标签为'sin(x)',并使用legend函数添加图例,最后呈现图像。该代码将绘制一个sin(x)的折线图,如下图所示: ![](https://img-blog.csdnimg.cn/20220726182234902.png) 需要注意的是,我们也可以同时传入多组数据到plot函数中,从而创建多条线条。此外,还可以在一个图中绘制多种类型的图形,比如在一个坐标系中绘制线图、散图、柱状图等等。 总之,matplotlib.pyplot.plot函数提供了丰富的接口和属性,可以灵活地绘制出各种类型的图形,为数据分析与可视化提供了很大的便利。 ### 回答3: matplotlib是一款常用的绘制图表的Python库,其中的pyplot子库提供了很多方便的绘图函数。 matplotlib.pyplot.plot()函数是其中最常用的函数之一,它可以绘制一个或多个数据集的线图,可以指定线条样式、颜色和标记等。 该函数的基本用法如下: ``` matplotlib.pyplot.plot(x, y, fmt=None, **kwargs) ``` 其中x和y是数据集,fmt参数是指定线条样式、颜色和标记等的字符串(可以省略)。 例如,下面的代码绘制了一个以x为横坐标、y为纵坐标的线图: ``` import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.plot(x, y) plt.show() ``` 结果如下所示: ![plot](https://cdn.jsdelivr.net/gh/Aiden-leee/PicSet/img/20220119102018.png) 默认情况下,plot()函数会按顺序绘制数据集中的,然后用线把这些连接起来。可以通过fmt参数来指定线条的样式。例如,'ro'表示红色圆形标记,'-.'表示虚线线条,'g--'表示绿色破折号线条等等。 除了fmt参数,还可以通过**kwargs来指定其他属性,如线条宽度、标记大小、标签名称等等。 例如,下面的代码指定了以蓝色箭头标记的红色实线线宽为2,标记大小为10: ``` plt.plot(x, y, 'r->', linewidth=2, markersize=10) plt.show() ``` 结果如下所示: ![plot2](https://cdn.jsdelivr.net/gh/Aiden-leee/PicSet/img/20220119102320.png) 对于多个数据集,可以分别在plot()函数中传入多组x和y,也可以在同一个plot()函数中传入一个包含多个数据集的列表。例如,下面的代码绘制了两个数据集(x1,y1)和(x2,y2): ``` x1 = [1, 2, 3, 4, 5] y1 = [2, 4, 6, 8, 10] x2 = [1, 2, 3, 4, 5] y2 = [1, 3, 5, 7, 9] plt.plot(x1, y1, 'r--', label='Data 1') plt.plot(x2, y2, 'b-.', label='Data 2') plt.legend() plt.show() ``` 结果如下所示: ![plot3](https://cdn.jsdelivr.net/gh/Aiden-leee/PicSet/img/20220119102432.png) 其中legend()函数用于显示标签,表示不同数据集对应哪条线条。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值