Python画图用到哪些库?

Matplotlib是Python绘图基石,控制精细适合定制化图表;Pandas内置.plot()方法可快速绘制常见图形,便于数据探索;Seaborn基于Matplotlib封装,语法简洁,专为统计可视化设计,一行代码生成复杂图表;Plotly支持交互式图形,适用于网页展示与动态操作;Bokeh、Altair、Pyecharts等按需选用。建议入门从Matplotlib与Pandas开始,逐步结合Seaborn提升可视化表达,有交互需求时引入Plotly,各库可混用互补。

Python画图最常用的是Matplotlib,它是基础且功能全面的绘图库;Pandas内置了Matplotlib接口,适合快速绘制数据分布、折线、柱状等常见图表;Seaborn基于Matplotlib封装,专为统计可视化设计,语法简洁、默认样式美观;Plotly支持交互式图表,适合网页展示或需要缩放、悬停、拖拽的场景;还有Bokeh、Altair、Pyecharts等,按需选用。

Matplotlib:稳扎稳打的绘图基石

几乎所有Python可视化都绕不开它。它控制精细,能从底层调整坐标轴、刻度、图例、文字等每个元素。虽然语法稍显冗长(比如画一条折线要先创建figure、再add_subplot、再plot),但正因如此,它非常可靠,适合出论文插图或定制化报表。

常见用法包括:

  • plt.plot() 画折线图
  • plt.scatter() 画散点图
  • plt.bar() 画柱状图
  • plt.hist() 画直方图
  • 搭配plt.subplots() 管理多子图布局

Seaborn:统计可视化的“快捷键”

如果你常做数据分析,Seaborn会极大提升效率。它自动处理配色、网格、标签、分组逻辑,一行代码就能画出带置信区间的回归线、小提琴图、热力图、成对关系矩阵等。

典型例子:

  • sns.boxplot(x='category', y='value', data=df) 快速对比不同类别的分布
  • sns.heatmap(df.corr(), annot=True) 直接画相关系数热力图
  • 配合sns.set_style("whitegrid") 调整体系风格

Plotly:让图表“动起来”

适合需要交互的场合——比如在Jupyter里点选某条曲线高亮、鼠标悬停看数值、缩放时间轴、导出为HTML分享给同事。它也支持3D图、地图、动画帧等高级功能。

常用方式:

  • px.line()px.scatter()plotly.express模块快速作图
  • go.Figure() + go.Scatter() 等手动构建复杂图形
  • fig.show() 在Jupyter中直接显示交互图;fig.write_html("plot.html") 导出网页

Pandas内置绘图:随手就来的小帮手

不需要额外导入绘图库,DataFrame和Series自带.plot()方法。背后调用的就是Matplotlib,但接口极简,适合探索性分析时快速看趋势或分布。

例如:

  • df['sales'].plot(kind='line')
  • df.plot.scatter(x='age', y='income')
  • df.hist(bins=20) 一键画全部数值列的直方图

基本上就这些。入门建议从Matplotlib + Pandas开始,熟悉后再加Seaborn提升表达力,有交互需求时引入Plotly。不复杂但容易忽略:它们可以混用——比如用Seaborn画主图,再用Matplotlib微调标题字体大小。