Matplotlib Python 中的线型

Suraj Joshi 2024年2月15日
Matplotlib Python 中的线型

本教程主要介绍了我们如何在 Matplotlib plot 中通过设置 matplotlib.pyplot.plot() 方法中 linestyle 参数的适当值来使用不同的线型。我们有很多 linestyle 的选项。

在 Matplotlib Python 中设置线条样式

import math
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2 * math.pi, 100)
y = np.sin(x)

plt.plot(x, y)
plt.xlabel("x")
plt.ylabel("sinx")
plt.title("Sinx Function")
plt.show()

输出:

Matplotlib Python 中的默认线条样式

它以默认的实线样式生成 sinx 函数的图形。

要查看 linestyle 参数的选择,我们可以执行以下脚本。

from matplotlib import lines

print(lines.lineStyles.keys())

输出:

dict_keys(['-', '--', '-.', ':', 'None', ' ', ''])

我们可以使用任何一个输出值来改变图形的线型。

import math
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2 * math.pi, 100)
y = np.sin(x)

plt.plot(x, y, linestyle="-.")
plt.xlabel("x")
plt.ylabel("sinx")
plt.title("Sinx Function")
plt.show()

输出:

在 Matplotlib Python 中设置线型

它将我们绘图中的线条样式设置为 -.

Matplotlib Linestyle 文档提供了一个字典,我们可以用它来对线型进行更精细的控制。根据文档,我们可以用 (offset, (on_off_seq)) 元组来设置行样式。

import math
import numpy as np
import matplotlib.pyplot as plt

from collections import OrderedDict

linestyles_dict = OrderedDict(
    [
        ("solid", (0, ())),
        ("loosely dotted", (0, (1, 10))),
        ("dotted", (0, (1, 5))),
        ("densely dotted", (0, (1, 1))),
        ("loosely dashed", (0, (5, 10))),
        ("dashed", (0, (5, 5))),
        ("densely dashed", (0, (5, 1))),
        ("loosely dashdotted", (0, (3, 10, 1, 10))),
        ("dashdotted", (0, (3, 5, 1, 5))),
        ("densely dashdotted", (0, (3, 1, 1, 1))),
        ("loosely dashdotdotted", (0, (3, 10, 1, 10, 1, 10))),
        ("dashdotdotted", (0, (3, 5, 1, 5, 1, 5))),
        ("densely dashdotdotted", (0, (3, 1, 1, 1, 1, 1))),
    ]
)

x = np.linspace(0, 2 * math.pi, 100)
y = np.sin(x)

plt.plot(x, y, linestyle=linestyles_dict["loosely dashdotdotted"])
plt.xlabel("x")
plt.ylabel("sinx")
plt.title("Sinx Function")
plt.show()

输出:

在 Matplotlib Python 中使用字典设置线条样式

它使用 linestyles_dict 字典设置 linestyle。我们可以选择任何我们想要设置线型的键,并将该键的值传递给 linestyles_dict 字典,作为 plot() 方法中的 linestyle 参数。

作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

相关文章 - Matplotlib Line