在数据分析过程中,数据的可视化是至关重要的。利用 Matplotlib
与 Pandas
的结合,可以轻松生成丰富多样的图表。接下来,我们将通过几个实际案例来展示如何实现这一目标。
基本框架 首先,你需要安装 Matplotlib
和 Pandas
。如果还没有安装,可以使用以下命令:
1 pip install matplotlib pandas
接下来,我们导入这两个库:
1 2 import pandas as pdimport matplotlib.pyplot as plt
创建示例数据 为了进行可视化示例,我们首先创建一个简单的 DataFrame
:
1 2 3 4 5 6 7 data = { '年份' : [2018 , 2019 , 2020 , 2021 , 2022 ], '销售额' : [200 , 300 , 400 , 500 , 600 ], '利润' : [50 , 80 , 120 , 180 , 250 ] } df = pd.DataFrame(data)
简单折线图 我们可以使用 Matplotlib
绘制一个折线图来显示销售额和利润随年份的变化趋势:
1 2 3 4 5 6 7 8 9 plt.plot(df['年份' ], df['销售额' ], marker='o' , label='销售额' ) plt.plot(df['年份' ], df['利润' ], marker='o' , label='利润' ) plt.title('销售额与利润随年份变化图' ) plt.xlabel('年份' ) plt.ylabel('金额(单位:元)' ) plt.legend() plt.grid() plt.show()
在这个例子中,marker='o'
用于在数据点处添加圆形标记。通过 plt.legend()
来显示图例。
柱状图 接下来,我们可以使用柱状图来更直观地比较销售额和利润:
1 2 3 4 5 6 7 8 9 10 11 12 bar_width = 0.35 index = range (len (df)) plt.bar(index, df['销售额' ], bar_width, label='销售额' , color='b' ) plt.bar([i + bar_width for i in index], df['利润' ], bar_width, label='利润' , color='g' ) plt.title('销售额与利润对比' ) plt.xlabel('年份' ) plt.ylabel('金额(单位:元)' ) plt.xticks([i + bar_width / 2 for i in index], df['年份' ]) plt.legend() plt.show()
在这里,我们使用 plt.bar()
创建两个相邻的柱状图,bar_width
控制柱子的宽度,使它们看起来更整齐。
饼图 如果我们想要查看不同年份销售额在总销售额中的占比,可以使用饼图:
1 2 3 4 plt.pie(df['销售额' ], labels=df['年份' ], autopct='%1.1f%%' , startangle=140 ) plt.title('不同年份销售额占比' ) plt.axis('equal' ) plt.show()
这里,autopct='%1.1f%%'
用于显示百分比,startangle=140
旋转饼图以更好地显示。
组合图 最后,我们可以将折线图和柱状图组合在一起,以便对比更为直观:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 fig, ax1 = plt.subplots() color = 'tab:blue' ax1.set_xlabel('年份' ) ax1.set_ylabel('销售额' , color=color) ax1.bar(df['年份' ], df['销售额' ], color=color, alpha=0.6 , label='销售额' ) ax1.tick_params(axis='y' , labelcolor=color) ax2 = ax1.twinx() color = 'tab:red' ax2.set_ylabel('利润' , color=color) ax2.plot(df['年份' ], df['利润' ], color=color, marker='o' , label='利润' ) ax2.tick_params(axis='y' , labelcolor=color) plt.title('销售额与利润组合图' ) plt.show()
通过 ax1.twinx()
来创建一个共享 x 轴的第二个 y 轴,可以在同一张图上同时显示柱状图和折线图。
总结 通过 Matplotlib
与 Pandas
的结合,我们能够快速而灵活地进行数据可视化,从简单的折线图到复杂的组合图表,帮助我们更好地理解数据。掌握这些技能,将显著提升你的数据分析能力。