Pandas:plot相关函数
0、注意事项 及 各种错误
1)绘制bar图时,如果出现重复的x值被合并到一个情况(导致X轴应该显示内容有缺失),可能是由于Pandas版本太低;
2)无法设置中文title,在代码中加入两句话:
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
1、plot()
说明
绘图
用法
df.plot( x=None, y=None, kind='line', ax=None, subplots=False, sharex=None, sharey=False, layout=None, figsize=None, use_index=True, title=None, grid=None, legend=True, style=None, logx=False, logy=False, loglog=False, position=None xticks=None, yticks=None, xlim=None, ylim=None, rot=None, xerr=None, secondary_y=False, sort_columns=False, **kwds )
参数
参数 | 类型 | 默认值 | 说明 |
x | label、position | None | 用哪一列的值作为x,默认index列 |
y | label、position | None | 用哪几列作为y,默认全部(y中有几列就有几条折线) |
kind | str | 'line' | 哪种类型的图:
‘line’ : line plot (default)#折线图 ‘bar’ : vertical bar plot#条形图 ‘barh’ : horizontal bar plot#横向条形图 ‘hist’ : histogram#柱状图 ‘box’ : boxplot#箱线图 ‘kde’ : Kernel Density Estimation plot#Kernel 的密度估计图,主要对柱状图添加Kernel 概率密度线 ‘density’ : same as ‘kde’ ‘area’ : area plot#不了解此图 ‘pie’ : pie plot#饼图 ‘scatter’ : scatter plot#散点图 需要传入columns方向的索引 ‘hexbin’ : hexbin plot#不了解此图
|
ax | matplotlib.axes | None |
子图(axes) 。如果没有设置,则使用当前matplotlib subplot。 figure,ax=plt.subplots(m,n) 如果要在子图[i][j]上绘图,该项参数要设置为ax[i][j] |
subplots | bool | False | 是否为每一列单独开辟子图 |
sharex | bool |
ax==None时True 否则False |
在subplots=True时,共享x轴。 该项标识是否为每个子图分别显示一个x label |
sharey | bool | False | 在subplots=True时,是否共享y轴(通常不常用) |
layout | tuple(rows,columns) | (n,1) | 子图界面布局,默认是(n,1) |
figsize | tuple(width,height) | 界面长宽,通常不用管 | |
use_index | bool | True | 使用Index列作为x轴 |
title | str,list | None |
如果是str,则整副图像只有一个title,在中间上部 如果是list,subplots=True,则为每个子图命名 |
grid | bool | None | 是否绘制网格 |
legend | bool或'reverse' | True |
是否绘制图例 如果设置为'reverse',则图例反放 |
style | list、dict | 每一列对应折线的绘制方式 | |
logx | bool、'sym' | False | 是否使用对数横坐标 |
logy | bool、'sym' | False | 是否使用对数纵坐标 |
loglog | bool、'sym' | False | 是否使用对数横纵坐标 |
xticks | sequence | 设置x轴刻度 | |
yticks | sequence | 设置y轴刻度
A.plot(yticks=[0,300,600]) #y轴上显示出0 300 600刻度 |
|
xlim | (min,max)或[min,max] | 最大最小刻度值 | |
ylim | (min,max)或[min,max] | ||
rot | int | None | x轴坐标刻度的旋转角度 |
fontsize | int | None | 坐标刻度文字大小 |
colormap | str、matplotlib colormap object | None | 色表 |
colorbar | bool | 是否绘制色表(只用于散点图和hexbin图) | |
position | float(0.0~0.1) | 柱状图布局(只用于bar图) | |
table | bool、Series、DataFrame | False |
True时,在图形中放置一个数据表格 如果给出一个Series或DataFrame,则绘制给出的数据表格 |
yerr | DataFrame、Series、array、dict、str | ||
xerr | DataFrame、Series、array、dict、str | ||
stacked | bool |
line和bar图中False area图中True |
堆叠图 |
sort_columns | bool | False | 对列名排序后再画图 |
secondary | bool、sequence | False | 右y轴 |
mark_right | bool | True | 使用右y轴时,是否在图例上标注'right' |
include_bool | bool | False | 如果是True,那么boolean值也会被绘制 |
backend | str | None |
在使用plot之前,也可以使用matplotlib中的相关方法,比如:
import matplotlib.pyplot as plt fig = plt.figure() #新建画布 ax1 = fig.add_subplot(2,1,1)#选择子画布 df.plot(ax=ax1)#在子画布上画图
返回值
matplotlib.axes.Axes
或者 多个Axes的ndarray
通过这个返回值,我们可以对具体子图进行操作(如果通过subplots参数引入了话)。
假设我们有5列,并通过subplots参数将这5列单独绘制出来,那么就能用ax[i]来访问这5幅子图,并通过像使用matplotlib.pyplot那样来使用其它的绘图函数:
ax=df.plot(subplots=True) #假设df一共有5列,那么在激活了subplots参数后,就会有5幅子图,用ax承接plot()函数的返回值,ax就是这5幅子图的ndarray,通过ax[i]就可以访问具体的子图 for j in range(5): ax[j].axhline(y=40000,color='red')#给每幅子图添加水平线 plt.show()
2、plot.bar()
说明
绘制柱状图
用法
df.plot.bar(x=None,y=None,**kwargs)
参数
参数 |
类型 |
默认值 |
说明 |
x | label或position | None | 作为x的列,默认index列 |
y | label或position | None | 作为y的列(可以是列名或者某一列的索引),默认所有数值列 |
color | str、Array、List、Dict |
每条柱的颜色; 如果Color List中的数量不与列数相匹配,那么颜色就对每列循环使用 |
|
**kwargs | 其他参数,和plot()的相同 |
分类:
Pandas
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性