📅  最后修改于: 2023-12-03 15:22:33.027000             🧑  作者: Mango
八度图图例(octave chart)是一种常用于表达频率分布的图表类型。它由一个八角形的轮廓和八个等分线组成,每个等分线对应一个八度。八度图图例的优点在于可以直观地表现出音高、音名和音程之间的关系。
下面以Python中的matplotlib库为例介绍如何绘制八度图图例:
import matplotlib.pyplot as plt
import numpy as np
# 创建画布和轴对象
fig, ax = plt.subplots(figsize=(6, 6))
# 设置八角形和等分线的参数
theta = np.linspace(0, 2*np.pi, 9)
rad = 1
width = 0.03
# 绘制八角形
ax.plot(rad*np.cos(theta), rad*np.sin(theta), color='gray')
for i in range(8):
# 绘制等分线
ax.plot([0, rad*np.cos(theta[i])], [0, rad*np.sin(theta[i])], color='gray')
# 添加等分线的标签
ax.text(rad*1.05*np.cos(theta[i]+np.pi/8), rad*1.05*np.sin(theta[i]+np.pi/8), str(i+1), fontsize=12, rotation=np.rad2deg(theta[i]))
# 设置坐标轴刻度
ax.set_ylim(-1.2, 1.2)
ax.set_xlim(-1.2, 1.2)
ax.set_xticks([])
ax.set_yticks([])
plt.show()
绘制的八度图图例如下:
在音乐理论中,八度图图例经常被用于表示音高分布。下图是以C大调为例的八度图图例,其中每个等分线分别对应了以下音高:
1度:C3
2度:C4
3度:G4
4度:C5
5度:E5
6度:G5
7度:B5
8度:C6
通过八度图图例,我们可以更加清晰地看到各个音高之间的关系,以及音程的差距。