弦圖是一種數(shù)據(jù)可視化圖表,它可以顯示多個(gè)變量之間的關(guān)系。Python是一種非常流行的編程語(yǔ)言,可以用來(lái)繪制各種類型的圖表,包括弦圖。在Python中,我們可以使用D3.js庫(kù)來(lái)創(chuàng)建弦圖。D3.js是一個(gè)JavaScript庫(kù),用于創(chuàng)建交互式數(shù)據(jù)可視化。
import matplotlib.pyplot as plt import numpy as np # 設(shè)置弧度和標(biāo)簽 categories = ['部門A', '部門B', '部門C', '部門D', '部門E'] colors = ['#E69F00', '#56B4E9', '#F0E442', '#009E73', '#D55E00'] # 創(chuàng)建弧度 N = len(categories) angles = [i * 2 * np.pi / N for i in range(0, N)] angles += angles[:1] # 創(chuàng)建圖表 ax = plt.subplot(111, polar=True) # 添加角度 plt.xticks(angles[:-1], categories, color='black', size=12) # 設(shè)置刻度 ax.set_rlabel_position(0) plt.yticks([20, 40, 60, 80], ["20", "40", "60", "80"], color="grey", size=10) plt.ylim(0, 100) # 添加弦圖的數(shù)據(jù) values = [[80, 70, 30, 40, 20], [60, 20, 80, 50, 45], [20, 90, 40, 20, 70], [40, 50, 60, 30, 40], [10, 20, 60, 90, 30]] # 循環(huán)添加線條和標(biāo)簽 for i in range(len(values)): values_row = values[i] values_row += values_row[:1] ax.plot(angles, values_row, linewidth=1, linestyle='solid', label=categories[i], color=colors[i]) ax.fill(angles, values_row, colors[i], alpha=0.1) # 讀取值 plt.legend(bbox_to_anchor=(0, 1.4)) plt.show()
在上面的代碼中,我們首先定義了要在弦圖中使用的變量。接下來(lái),我們創(chuàng)建了弧度,并使用它來(lái)設(shè)置角度。我們還定義了標(biāo)簽,并將它們用作刻度標(biāo)簽。接下來(lái),我們定義了要在弦圖中使用的數(shù)據(jù)。我們循環(huán)遍歷每個(gè)數(shù)據(jù)行,并為其添加線條和標(biāo)簽。最后,我們添加圖例并顯示圖表。
通過(guò)使用Python和D3.js,我們可以輕松地創(chuàng)建弦圖,并可視化多個(gè)變量之間的關(guān)系。