Matplotlib 自定义标记/符号

Matplotlib 自定义标记/符号

Matplotlib是Python中最流行的数据可视化库之一,它提供了丰富的绘图功能,包括:折线图(line plot)、散点图(scatter plot)、直方图(histogram)、箱线图(box plot)等等。在Matplotlib中,我们可以通过自定义标记或者符号来美化我们的图形。

阅读更多:Matplotlib 教程

Matplotlib基本绘图

在介绍Matplotlib自定义标记/符号之前,我们先来回顾一下Matplotlib的基本绘图方法。

折线图

下面的代码演示了如何使用Matplotlib绘制折线图。

import matplotlib.pyplot as plt
import numpy as np

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

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

散点图

下面的代码演示了如何使用Matplotlib绘制散点图。

import matplotlib.pyplot as plt
import numpy as np

x = np.random.randn(100)
y = np.random.randn(100)

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

直方图

下面的代码演示了如何使用Matplotlib绘制直方图。

import matplotlib.pyplot as plt
import numpy as np

x = np.random.randn(1000)

plt.hist(x, bins=50)
plt.show()

箱线图

下面的代码演示了如何使用Matplotlib绘制箱线图。

import matplotlib.pyplot as plt
import numpy as np

data = np.random.randn(100, 5)

plt.boxplot(data)
plt.show()

Matplotlib基本标记

在Matplotlib中,我们可以使用一些基本的标记来点表示散点图中的数据点。下面是Matplotlib中的基本标记:

标记 描述
‘.’
‘,’ 像素
‘o’
‘v’ 下三角形
‘^’ 上三角形
‘<‘ 左三角形
‘>’ 右三角形
‘1’ 下箭头
‘2’ 上箭头
‘3’ 左箭头
‘4’ 右箭头
‘s’ 正方形
‘p’ 五边形
‘*’ 星形
‘h’ 六边形
‘H’ 八边形
‘+’ 加号
‘x’ 叉号
‘D’ 钻石
‘d’ 小钻石

下面的代码演示了如何使用Matplotlib中的基本标记绘制散点图。

import matplotlib.pyplot as plt
import numpy as np

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

plt.scatter(x, y, marker='+')
plt.show()

Matplotlib自定义标记

在Matplotlib中,我们可以通过自定义标记的方式来绘制更多样化的散点图。自定义标记需要通过绘制矢量图形的方式来得到。在Matplotlib中,我们可以使用Path类来创建自定义标记,Path类提供了各种各样的绘制方法,例如直线、曲线、矩形、圆等等,我们可以结合这些绘制方法来创建自己的标记。

下面的代码演示了如何使用Path类来创建自定义标记。

import matplotlib.pyplot as plt
from matplotlib.path import Path
import matplotlib.patches as patches

verts = [
    (0, 0), (0.5, 1), (1, 0), (0.5, 0.5), (0, 0)
]

codes = [Path.MOVETO,
         Path.LINETO,
         Path.LINETO,
         Path.LINETO,
         Path.CLOSEPOLY,
         ]

path = Path(verts, codes)

fig, ax = plt.subplots()
patch = patches.PathPatch(path, facecolor='r')
ax.add_patch(patch)

plt.xlim(-0.5, 1.5)
plt.ylim(-0.5, 1.5)
plt.show()

我们可以将自定义标记应用到散点图中,下面的代码演示了如何使用自定义标记绘制散点图。

import matplotlib.pyplot as plt
from matplotlib.path import Path
import matplotlib.patches as patches
import numpy as np

verts = [
    (0, 0), (0.5, 1), (1, 0), (0.5, 0.5), (0, 0)
]

codes = [Path.MOVETO,
         Path.LINETO,
         Path.LINETO,
         Path.LINETO,
         Path.CLOSEPOLY,
         ]

path = Path(verts, codes)

fig, ax = plt.subplots()
patch = patches.PathPatch(path, facecolor='none', linewidth=2, edgecolor='r')
ax.add_patch(patch)

x = np.random.randn(100)
y = np.random.randn(100)

plt.scatter(x, y, marker=patch)
plt.show()

总结

在Matplotlib中,我们可以通过自定义标记/符号的方式来美化我们的图形。通过使用Path类来创建自定义标记,我们可以创建出更加丰富多彩的散点图。同时,我们还可以将自定义标记应用到其他类型的图形中,例如线图、直方图等等,来提升图像的可读性和美观度。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程