marimekko图 python代码
时间: 2023-09-24 16:00:48 浏览: 158
Marimekko图是一种数据可视化图表,它显示了两个或更多分类变量之间的相对比例。在Python中,我们可以使用matplotlib库来创建Marimekko图。
首先,我们需要导入matplotlib库和numpy库:
```
import matplotlib.pyplot as plt
import numpy as np
```
接下来,我们需要定义数据。假设我们有两个分类变量A和B,并且我们想要显示它们之间的相对比例。我们可以创建一个包含每个分类变量的频率的数组:
```
# 定义分类变量的频率
A = np.array([10, 20, 30])
B = np.array([5, 15, 25])
```
然后,我们需要计算每个分类变量的相对比例。我们可以使用numpy库中的cumsum()函数来计算累积频率,然后将其除以总频率得到相对比例:
```
# 计算相对比例
total = np.sum(A) + np.sum(B)
A_ratio = np.cumsum(A) / total
B_ratio = np.cumsum(B) / total
```
接下来,我们将创建一个Marimekko图。我们可以使用bar()函数来创建矩形条形图,并使用fill_between()函数来填充矩形的颜色:
```
# 创建Marimekko图
fig, ax = plt.subplots()
ax.bar(np.arange(len(A)), A, width=0.5, color='r')
ax.bar(np.arange(len(B)), B, bottom=A, width=0.5, color='b')
ax.fill_between(np.arange(len(A)), A_ratio, B_ratio, color='gray', alpha=0.5)
```
最后,我们可以添加标签、标题和图例,并展示Marimekko图:
```
# 添加标签、标题和图例
ax.set_xticks(np.arange(len(A)))
ax.set_xticklabels(['A1', 'A2', 'A3'])
ax.set_ylabel('Frequency')
ax.set_xlabel('Category A')
ax.set_title('Marimekko Chart')
ax.legend(['A', 'B', 'Relative Proportion'])
# 展示Marimekko图
plt.show()
```
以上是用Python代码创建Marimekko图的简单示例。你可以根据自己的数据和需求进行相应的修改和扩展。
阅读全文