matplotlib 十字坐标系
时间: 2024-07-21 07:01:30 浏览: 127
matplotlib是一个非常流行的Python数据可视化库,它允许用户创建高质量的图表。十字坐标系是一种特殊的图表类型,也称为radar chart或星形图,常用于比较几个类别在各个维度上的表现。在matplotlib中,你可以使用`plt.polar()`函数或者`mpl_toolkits.mplot3d.Axes3D`模块的`polar projection`来创建这种图表。
以下是一个简单的例子展示如何使用matplotlib创建一个十字坐标系:
```python
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import host_subplot
import numpy as np
# 创建数据点
categories = ['A', 'B', 'C', 'D', 'E']
values = [4, 2, 5, 3, 7]
host = host_subplot(111, polar=True)
par = host.twin()
par.axis["top"].set_visible(False)
host.set_yticklabels([])
par.set_xticks(np.arange(0, 2*np.pi, 2*np.pi/len(categories)), labels=categories)
par.set_ylim(0, 10) # 设置极轴范围
for value, category in zip(values, categories):
host.plot([np.pi/2], [value], marker='o', color='r') # 中心标记
par.plot([np.pi/2 - np.pi/len(categories), np.pi/2 + np.pi/len(categories)], [0, value], label=category) # 连线表示值
host.legend(loc="upper center", bbox_to_anchor=(0.5, -0.1))
plt.show()
```
在这个示例中,`host_subplot`负责创建主体的圆环图,而`twin()`函数则添加了一个附加的极轴来显示每个类别在各个维度的数值。
阅读全文