用python绘制柱状图显示占比的代码
时间: 2023-12-10 09:06:01 浏览: 194
好的,以下是用 Python 绘制柱状图显示占比的代码示例:
```python
import matplotlib.pyplot as plt
# 定义数据
labels = ['A', 'B', 'C', 'D', 'E']
values = [10, 24, 36, 40, 55]
# 计算占比
total = sum(values)
proportions = [v/total for v in values]
# 绘制柱状图
plt.bar(labels, proportions)
# 设置标题和标签
plt.title('Bar Chart Showing Proportions')
plt.xlabel('X Label')
plt.ylabel('Proportions')
# 显示图形
plt.show()
```
这个示例代码绘制了一个简单的柱状图,其中 `labels` 和 `values` 分别代表横轴和纵轴的数据。使用 `sum` 函数计算出总数 `total`,然后遍历 `values` 计算每个值的占比,并将占比保存到 `proportions` 列表中。最后使用 `plt.bar` 方法绘制柱状图,将 `labels` 和 `proportions` 作为参数传入。然后使用 `plt.title`、`plt.xlabel` 和 `plt.ylabel` 方法设置标题和标签,最后使用 `plt.show` 方法显示图形。
相关问题
用python绘制柱状图,根据excel的数据显示某项数据在总体的占比的代码
好的,以下是用 Python 绘制柱状图,根据 Excel 的数据显示某项数据在总体的占比的代码示例:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取 Excel 数据
df = pd.read_excel('data.xlsx')
# 计算总数
total = df['value'].sum()
# 计算占比
df['proportion'] = df['value'] / total
# 绘制柱状图
plt.bar(df['name'], df['proportion'])
# 设置标题和标签
plt.title('Bar Chart Showing Proportions')
plt.xlabel('Item')
plt.ylabel('Proportions')
# 显示图形
plt.show()
```
这个示例代码首先使用 `pandas` 库的 `read_excel` 函数读取 Excel 文件中的数据。假设 Excel 文件中有两列数据,一列为项目名称 `name`,一列为该项目所占的数值 `value`。
然后使用 `sum` 函数计算出总数 `total`,并在 DataFrame 中增加一列 `proportion` 代表每个项目在总体中的占比。
最后使用 `plt.bar` 方法绘制柱状图,将 `df['name']` 和 `df['proportion']` 作为参数传入。然后使用 `plt.title`、`plt.xlabel` 和 `plt.ylabel` 方法设置标题和标签,最后使用 `plt.show` 方法显示图形。
python绘制柱状图差距过大
要在Python中绘制差距较大的柱状图,可以使用堆积柱状图的方法。堆积柱状图可以显示一种大类下某种小类的占比。在matplotlib中,可以通过多次绘制柱状图并进行覆盖来实现。但需要注意覆盖的顺序,“大类在前,小类在后”,以防止被覆盖住。以下是一个示例代码:
```python
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2.3, 2.6, 3.7, 4.1, 4.7]
y1 = [1, 1.5, 2.3, 1.8, 3.2]
width = [0.8, 0.2, 0.3, 0.5, 0.1]
carray = ['k', 'g', 'b', 'c', 'm']
earray = ['r', 'y', 'k', 'g', 'b']
linewidth = 0.2
tlabel = ["a", 'b', 'c', 'd', 'e']
plt.bar(x, y, width=width, align="center", bottom=None, lw=linewidth, tick_label=tlabel, color=carray, edgecolor=earray, hatch='/') # 柱子填充符号
plt.bar(x, y1, width, align="center", lw=linewidth, hatch='\\')
plt.show()
```
通过调整`y`和`y1`的值,可以实现差距较大的柱状图。其中,`y`表示大类的数据,`y1`表示小类的数据。`width`表示每个柱子的宽度,`carray`和`earray`分别表示柱子的填充颜色和边框颜色。`linewidth`表示边框的宽度。通过调整这些参数,可以实现不同差距的柱状图。
另外,如果要绘制差距较大的水平柱状图(即条形图),可以使用`barh`函数。以下是一个示例代码:
```python
import matplotlib.pyplot as plt
y = [2, 7, 4, 5, 6]
width = [2.3, 2.6, 3.7, 4.1, 4.7]
height = 0.2
carray = 'b'
earray = 'm'
tlabel = ['cc', 'mm', 'r', 'uu', 'pp']
plt.barh(y, width, height, align='center', tick_label=tlabel, edgecolor=earray, color=carray, left=10)
plt.show()
```
通过调整`y`和`width`的值,可以实现差距较大的水平柱状图。其中,`y`表示柱子的y坐标,`width`表示柱子的宽度,`height`表示柱子的高度,`carray`和`earray`分别表示柱子的填充颜色和边框颜色。通过调整这些参数,可以实现不同差距的水平柱状图。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Python可视化——基于matplotlib.pyplot的基础图形绘制](https://blog.csdn.net/qq_60471758/article/details/128365567)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文