使用Matplotlib绘制出如下玫瑰图 其中,data = [1, 2, 3, 4, 5, 6, 7, 8]
时间: 2023-10-20 20:08:40 浏览: 114
matlab画玫瑰花图.doc
以下是使用Matplotlib绘制玫瑰图的代码:
```python
import matplotlib.pyplot as plt
import numpy as np
data = [1, 2, 3, 4, 5, 6, 7, 8]
theta = np.linspace(0, 2*np.pi, len(data), endpoint=False)
radii = np.array(data)
# Make the plot
fig, ax = plt.subplots(subplot_kw={'projection': 'polar'})
bars = ax.bar(theta, radii, width=0.4)
# Set the color of each bar based on its value
for r, bar in zip(radii, bars):
bar.set_facecolor(plt.cm.viridis(r/10.))
bar.set_alpha(0.8)
plt.show()
```
解释一下代码:
- `theta` 是极轴角度,使用 `np.linspace` 生成了一个从 0 到 2π 的等分数组,数组长度与数据长度相同;
- `radii` 是极径,即数据数组;
- 创建一个带有极坐标轴的 subplot;
- 使用 `ax.bar` 绘制柱状图;
- 循环遍历每个柱子,设置其颜色和透明度;
- 最后使用 `plt.show()` 显示图形。
运行这段代码,会得到如下玫瑰图:
![rose](https://cdn.jsdelivr.net/gh/YikunLiu666/CDN/images/rose.png)
阅读全文