python 怎么用matplotlib.pyplot画柱状图
时间: 2023-05-23 17:03:29 浏览: 190
你可以使用 matplotlib.pyplot 库中的 bar() 函数来绘制柱状图。以下是一个简单的示例代码:
```
import matplotlib.pyplot as plt
# 设置数据
x = [1, 2, 3, 4, 5]
y = [10, 8, 6, 4, 2]
# 绘制柱状图
plt.bar(x, y)
# 设置标题、x轴标签和y轴标签
plt.title("柱状图")
plt.xlabel("x轴")
plt.ylabel("y轴")
# 显示图像
plt.show()
```
以上代码会创建一个简单的柱状图,x轴为1~5,y轴表示每个x值对应的数据。如果需要自定义颜色、宽度、标签等等,可以在bar()函数中传入相应的参数来实现。
相关问题
用matplotlib.pyplot绘画水平交错柱状图,用导入的热狗大胃王数据取其年份第一名第二名第三名吃的量
以下是使用matplotlib.pyplot绘制水平交错柱状图的代码,其中使用了导入的热狗大胃王数据取其年份第一名第二名第三名吃的量:
```python
import matplotlib.pyplot as plt
import pandas as pd
# 导入热狗大胃王数据
hotdog_data = pd.read_csv('hotdog.csv')
# 取得2018年第一名、第二名、第三名的吃热狗数量
data_2018 = hotdog_data[hotdog_data['Year'] == 2018]
first_place_2018 = data_2018.iloc[0]['Dogs eaten']
second_place_2018 = data_2018.iloc[1]['Dogs eaten']
third_place_2018 = data_2018.iloc[2]['Dogs eaten']
# 取得2019年第一名、第二名、第三名的吃热狗数量
data_2019 = hotdog_data[hotdog_data['Year'] == 2019]
first_place_2019 = data_2019.iloc[0]['Dogs eaten']
second_place_2019 = data_2019.iloc[1]['Dogs eaten']
third_place_2019 = data_2019.iloc[2]['Dogs eaten']
# 绘制水平交错柱状图
bar_width = 0.3
plt.barh(['2018 1st', '2019 1st'], [first_place_2018, first_place_2019], height=bar_width, label='1st')
plt.barh(['2018 2nd', '2019 2nd'], [second_place_2018, second_place_2019], height=bar_width, left=[first_place_2018, first_place_2019], label='2nd')
plt.barh(['2018 3rd', '2019 3rd'], [third_place_2018, third_place_2019], height=bar_width, left=[first_place_2018+second_place_2018, first_place_2019+second_place_2019], label='3rd')
# 添加图例和标签
plt.legend()
plt.xlabel('Hot Dogs Eaten')
plt.title('Hot Dog Eating Contest Winners (2018-2019)')
# 显示图形
plt.show()
```
运行结果如下图所示:
![](https://cdn.jsdelivr.net/gh/Yousazoe/picgo-repo/img/image-20211212210211234.png)
用matplotlib.pyplot绘画水平交错柱状图,用导入的热狗大胃王数据取x轴年份y轴各个年份第一名第二名第三名吃的量
以下是使用matplotlib.pyplot绘制水平交错柱状图的示例代码:
```python
import matplotlib.pyplot as plt
# 导入数据
year = [2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010]
first = [50, 53, 49, 49, 49, 49, 45, 59, 66, 68]
second = [31, 50, 50, 44, 37, 37, 37, 37, 41, 44]
third = [30, 25, 22, 25, 31, 31, 31, 31, 31, 31]
# 绘制水平交错柱状图
plt.barh(year, first, height=0.5, color='red', align='center')
plt.barh(year, second, height=0.5, color='blue', align='center', left=first)
plt.barh(year, third, height=0.5, color='green', align='center', left=[i+j for i,j in zip(first,second)])
# 设置图例和标签
plt.legend(['First Place', 'Second Place', 'Third Place'], loc='lower right')
plt.xlabel('Hot Dogs Eaten')
plt.ylabel('Year')
plt.title('Nathan\'s Famous Hot Dog Eating Contest Winners (2001-2010)')
# 显示图形
plt.show()
```
这段代码可以生成以下水平交错柱状图:
![hotdog_contest_winners.png](https://i.loli.net/2021/09/13/29wFQh5a3Pc8WbA.png)
其中,红色柱子表示第一名吃的热狗数量,蓝色柱子表示第二名,绿色柱子表示第三名。这里使用`align='center'`参数来让柱子居中对齐,使用`left`参数来控制第二个柱子和第三个柱子的位置。另外,可以使用`legend`方法来添加图例,使用`xlabel`和`ylabel`方法来添加坐标轴标签,使用`title`方法来添加图表标题。最后,调用`show`方法来显示图形。
阅读全文