雷达图可视化的源代码
时间: 2024-10-23 16:14:55 浏览: 17
雷达图(也称为星形图或 Spider Chart)是一种用于显示多维度数据集的图表,常用于评估和比较各个类别在多个指标下的性能。在可视化源代码方面,常见的编程语言如Python(Matplotlib、Seaborn、Plotly等库)、JavaScript(D3.js、ECharts等)都有相应的实现。
例如,在Python中,你可以使用`matplotlib`库创建雷达图:
```python
import numpy as np
import matplotlib.pyplot as plt
def radar_factory(n):
angles = [n * i / (n - 1) for i in range(n)]
angles += angles[:1]
theta = np.deg2rad(angles)
center, radius = [0], 1
return {
'axes': [
{'center': center, 'radius': radius, 'name': str(i)}
for i in range(n)
],
'frame': {'color': 'k', 'linewidth': 1},
'style': {'ticks': False}
}
def plot_radar(data, labels):
fig = plt.figure()
ax = fig.add_subplot(111, polar=True, **radar_factory(len(labels)))
# Normalize the data
data = np.array(data) / data.sum()
lines = ax.plot(theta, data, linewidth=2, linestyle='solid')
ax.fill(theta, data, 'b', alpha=0.25)
# Set axis labels and limits
ax.set_xticks(angles[:-1])
ax.set_yticklabels([])
ax.set_ylim(0, 1)
for label, line in zip(labels, lines):
ax.annotate(
label,
xy=(line.get_xdata()[-1] + 0.01, line.get_ydata()[-1]),
horizontalalignment='right',
verticalalignment='bottom'
)
plt.show()
# 示例数据
data = [[0.5, 0.6, 0.7, 0.8, 0.9], [0.4, 0.7, 0.6, 0.5, 0.8]]
labels = ['特性A', '特性B', '特性C', '特性D', '特性E']
plot_radar(data, labels)
```
在这个例子中,`plot_radar`函数接受两个列表,一个是各个类别在每个指标上的分数,另一个是对应的标签名。然后它会生成并展示一个雷达图。
阅读全文