python簇状柱形图
时间: 2023-06-21 17:05:22 浏览: 304
要绘制Python中的簇状柱形图,可以使用matplotlib库。以下是一个简单的示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
data = [[30, 25, 50], [40, 23, 51], [35, 22, 45], [28, 21, 49]]
labels = ['A', 'B', 'C', 'D']
x = np.arange(len(labels))
# 绘制柱状图
width = 0.2
fig, ax = plt.subplots()
rects1 = ax.bar(x - width/2, data[0], width, label='Data 1')
rects2 = ax.bar(x + width/2, data[1], width, label='Data 2')
rects3 = ax.bar(x + 3*width/2, data[2], width, label='Data 3')
rects4 = ax.bar(x + 5*width/2, data[3], width, label='Data 4')
# 添加图例和标签
ax.set_xticks(x)
ax.set_xticklabels(labels)
ax.legend()
# 显示图形
plt.show()
```
这将生成一个带有四个数据系列的簇状柱形图,每个系列由三个柱子组成。您可以根据需要调整数据,标签和样式。
相关问题
簇状柱形图 python
簇状柱形图是一种用于比较多个类别或多个组之间的数据的图表类型。在Python中,你可以使用matplotlib库来创建簇状柱形图。下面是一个简单的示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
categories = ['A', 'B', 'C', 'D']
group1 = [10, 15, 7, 12]
group2 = [8, 11, 9, 13]
# 设置柱形图宽度
bar_width = 0.35
# 设置x轴位置
x = np.arange(len(categories))
# 绘制簇状柱形图
fig, ax = plt.subplots()
rects1 = ax.bar(x - bar_width/2, group1, bar_width, label='Group 1')
rects2 = ax.bar(x + bar_width/2, group2, bar_width, label='Group 2')
# 添加标签、标题和图例
ax.set_xlabel('Categories')
ax.set_ylabel('Values')
ax.set_title('Clustered Bar Chart')
ax.set_xticks(x)
ax.set_xticklabels(categories)
ax.legend()
# 显示图表
plt.show()
```
这段代码创建了一个包含两个组(Group 1和Group 2)的簇状柱形图,每个组包含四个类别(A、B、C和D)。你可以根据自己的数据和需求进行调整和修改。
Python利用excel绘制簇状柱形图和带标记的堆积折线图
A:Python可以利用pandas和matplotlib等工具绘制簇状柱形图和带标记的堆积折线图。
绘制簇状柱形图的步骤如下:
1. 读取Excel中的数据到pandas DataFrame中;
2. 根据需要对数据进行处理(例如,按照某一列进行分组等);
3. 利用matplotlib.pyplot模块绘制簇状柱形图;
4. 设置坐标轴标签、图例等,美化图形。
绘制带标记的堆积折线图的步骤类似,只需要利用matplotlib.pyplot模块的plot函数绘制折线,使用stackplot函数绘制堆积图,然后设置标记等即可。
下面是一个例子:
```
import pandas as pd
import matplotlib.pyplot as plt
# 读取Excel数据
data = pd.read_excel('sample.xlsx')
# 按照'Region'列进行分组计算各项指标的总和
grouped_data = data.groupby('Region').sum()
# 绘制簇状柱形图
width = 0.35 # 柱形宽度
ind = range(len(grouped_data)) # 横坐标刻度
fig, ax = plt.subplots()
rect1 = ax.bar(ind, grouped_data['Sales'], width, color='r', label='Sales')
rect2 = ax.bar([i + width for i in ind], grouped_data['Profit'], width, color='b', label='Profit')
# 设置坐标轴标签、图例等
ax.set_xticks([i + width / 2 for i in ind])
ax.set_xticklabels(grouped_data.index)
ax.set_xlabel('Region')
ax.set_ylabel('Amount')
ax.legend()
# 绘制带标记的堆积折线图
fig, ax = plt.subplots()
ax.plot(grouped_data.index, grouped_data['Sales'], marker='o', label='Sales')
ax.stackplot(grouped_data.index, grouped_data['Profit'], grouped_data['Shipping Cost'], labels=['Profit', 'Shipping Cost'])
ax.set_xlabel('Region')
ax.set_ylabel('Amount')
ax.legend()
plt.show()
```
阅读全文