plt不同列画一张柱形图
时间: 2024-12-06 12:07:00 浏览: 12
在Python的matplotlib库中,如果你有一组数据,并希望按照不同的列绘制柱状图,通常可以使用`pandas`先将数据整理成DataFrame,然后利用`pivot_table`或`melt`等函数将其转换为适合绘图的形式,最后通过`bar`函数创建图表。以下是一个简单的示例:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 假设你有如下数据(这是一个二维数组)
data = {'A': [10, 20, 30], 'B': [40, 50, 60], 'C': [70, 80, 90]}
df = pd.DataFrame(data)
# 使用pivot_table将数据按列分组绘制
column_pivot = df.pivot(index='index_column', columns='column_name', values='value_column')
column_chart = column_pivot.plot(kind='bar')
plt.xlabel('X轴标签') # 可以添加x轴标签
plt.ylabel('Y轴标签') # 添加y轴标签
plt.title('按列绘制的柱状图')
plt.show()
相关问题
接下来让我们开始画一张不同年份冠军吃掉热狗数量的柱形图。 fig, ax = plt.subplots() #subplots返回画布和子图 axis.bar(hot_dog["Year"],hot_dog["Dogs eaten"]) #绘制柱形图,第一个参数为x轴变量,第二个参数为y轴变量 plt.show() #显示图像 此时生成的图像如下图1所示: 图1 默认生成的柱形图 (2)编程任务 根据提示,在右侧编辑器 Begin-End 区间补充代码,绘制一张不同年份冠军吃掉热狗数量的柱形图。 import pandas as pd from matplotlib import pyplot as plt hot_dog = pd.read_csv(r"matplotlib_bar/csv/hot-dog-contest-winners.csv") def plot(): # ********* Begin *********# # ********* End *********# plt.savefig('matplotlib_bar/studentfile/studentanswer/level_1/US.png') plt.close()
以下是实现`plot`函数的代码:
```python
import pandas as pd
from matplotlib import pyplot as plt
hot_dog = pd.read_csv(r"matplotlib_bar/csv/hot-dog-contest-winners.csv")
def plot():
fig, ax = plt.subplots()
ax.bar(hot_dog["Year"], hot_dog["Dogs eaten"])
ax.set_xlabel('Year')
ax.set_ylabel('Dogs eaten')
ax.set_title('Hot Dog Eating Contest Winners')
plt.savefig('matplotlib_bar/studentfile/studentanswer/level_1/US.png')
plt.close()
```
这个函数读取了一个CSV文件,并使用`ax.bar`函数绘制了一个柱形图,其中横轴是年份,纵轴是吃掉的热狗数量。然后,函数使用`ax.set_xlabel`、`ax.set_ylabel`和`ax.set_title`函数设置了图表的标签和标题。最后,函数使用`plt.savefig`函数保存图表,并使用`plt.close`函数关闭图表。
请注意,这个函数假设CSV文件的路径与题目描述中给出的路径相同。如果实际路径不同,需要相应地修改代码。
# – coding: utf-8 – import pandas as pd import matplotlib.pyplot as plt df = pd.read_excel(r'组合图.xlsx') # 画柱状图 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.rcParams[''] # 为图表设置双坐标轴 plt.twinx() plt.bar(df['月份'], df['绘画课'], color='blue', linewidth=4, label='绘画课') # 画折线图 plt.plot(df['月份'], df['书法课'], color='red') plt.title('组合图') plt.xlabel('月份') plt.ylabel('课程') # 显示图标 plt.show()
这段代码使用了Python中的pandas和matplotlib库,实现了一个组合图,包括柱状图和折线图。
首先,使用pandas库中的read_excel函数读取了一个名为“组合图.xlsx”的Excel文件,将数据存储在名为df的DataFrame对象中。
接下来,使用matplotlib库中的rcParams函数设置了一些图表的属性,包括字体、坐标轴等等。
然后,调用twinx()函数为图表设置一个双坐标轴,即在同一张图表上绘制两个不同的坐标轴。
使用bar()函数画出了一个柱状图,在x轴上显示月份,y轴上显示绘画课的数量。其中,color参数指定了柱状图的颜色,linewidth参数指定了柱状图边框的线宽,label参数指定了柱状图的标签。
最后,使用plot()函数画出了一个折线图,在x轴上显示月份,y轴上显示书法课的数量。其中,color参数指定了折线图的颜色。
在设置完图表的标题、x轴标签、y轴标签之后,使用show()函数将图表显示在屏幕上。
总之,这段代码展示了如何使用Python中的pandas和matplotlib库绘制一个组合图,包括柱状图和折线图,并且可以自定义图表的属性和样式。
阅读全文