IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> python绘图二——用pandas绘制简单的图形 -> 正文阅读

[人工智能]python绘图二——用pandas绘制简单的图形

0. 简介

python中常用的绘图库除了matplotlib、seaborn之外,数据处理库pandas也能画图,本文就主要介绍如何使用pandas画图。

pandas主要是通过 pandas.DataFrame.plot() 来完成绘图,因此我们先来了解此函数的各个参数,然后通过实例进行演示。

1. pandas.DataFrame.plot()参数

官方文档

详解

参数

DataFrame.plot(data, 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, 
                xticks=None, yticks=None, xlim=None, ylim=None, rot=None,
                xerr=None,secondary_y=False, sort_columns=False, include_bool=False, **kwds)

解释

总体相关参数

Parameters:
data: series或DataFrame格式 #可以通过pd.DataFrame.plot(data)调用,也可以通过data.plot(),此时就不需要传入data参数。

x : label or position, default None # x轴的数据,只有当数据为DataFrame才传入,可以是列名或列的位置,不传入的话,默认是DataFrame的索引

y : label or position, default None # y轴的数据,只有当数据为DataFrame才传入,可以是列名或列的位置,不传入的话,默认是DataFrame的所有列

kind : str # 绘制图形的种类
‘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#散点图,只有数据为DataFrame格式才能传入此参数
‘hexbin’ : hexbin plot#不了解此图,只有数据为DataFrame格式才能传入此参数

子图相关参数

ax : matplotlib axes object, default None # An axes(轴) of the current figure**子图(axes, 也可以理解成坐标轴) 要在其上进行绘制的matplotlib subplot对象。如果没有设置,则使用当前matplotlib subplot**其中,变量和函数通过改变figure和axes中的元素(例如:title,label,点和线等等)一起描述figure和axes,也就是在画布上绘图。

subplots : boolean, default False # Make separate subplots for each column,就是说当设置subplots=True时,会为每列制作单独的子图

sharex : boolean, default True if ax is None else False # 如果有子图,子图共x轴刻度、标签

sharey : boolean, default False#如果有子图,子图共y轴刻度,标签

layout : tuple (optional) # (rows, columns) for the layout of subplots,子图的行列布局

图片相关参数

figsize : a tuple (width, height) in inches # 图片尺寸大小

use_index : boolean, default True # Use index as ticks for x axis,默认用索引做x轴

title : str or list # 标题。如果传入了list而且subplots=True,为每个子图设置标题

grid : boolean, default None (matlab style default) #图片是否有网格

legend : #子图的图例,添加一个subplot图例(默认为True)

style : list or dict # The matplotlib line style per column,每列图线的类型

x, y轴相关设置

logx : bool or ‘sym’, default False # Use log scaling or symlog scaling on x axis,设置x轴刻度是否取对数或symlog(定义一个接近零的值范围,在该范围内绘图是线性的,以避免使绘图趋于零附近的无穷大。)

logy : bool or ‘sym’, default False # Use log scaling or symlog scaling on y axis

loglog : bool or ‘sym’, default False#同时设置x,y轴刻度是否取对数

xticks : sequence # Values to use for the xticks,设置x轴刻度值,序列形式(比如列表)

yticks : sequence # Values to use for the yticks,设置y轴刻度,序列形式(比如列表)

xlim : 2-tuple/list # 设置坐标轴的范围,列表或元组形式

ylim : 2-tuple/list # 设置坐标轴的范围,列表或元组形式

xlabel: label, optional # 用于x轴上的xlabel的名称。默认情况下,将索引名称或用于x轴的列名用作xlabel

ylabel: label, optional # 用于y轴上的xlabel的名称。默认情况下,没有索引名称,而是通过legend的形式展示名称

rot : int, default None # Rotation for ticks (xticks for vertical, yticks for horizontal plots), 设置轴标签(轴刻度)的显示旋转度数

fontsize : int, default None # Font size for xticks and yticks,设置轴刻度的字体大小

区域设置

colormap : str or matplotlib colormap object, default None # Colormap to select colors from. If string, load colormap with that name from matplotlib,设置图的区域颜色

colorbar : boolean, optional  # If True, plot colorbar (only relevant for ‘scatter’ and ‘hexbin’ plots) ???

position : float   # Specify relative alignments for bar plot layout. From 0 (left/bottom-end) to 1 (right/top-end). Default is 0.5 (center)

table : boolean, Series or DataFrame, default False  # 如果为正,则选择DataFrame类型的数据并且转换匹配matplotlib的布局。
# If True, draw a table using the data in the DataFrame and the data will be transposed to meet matplotlib’s default layout. If a Series or DataFrame is passed, use passed data to draw a table.

yerr : DataFrame, Series, array-like, dict and str # ???

xerr : same types as yerr. # ???

stacked : boolean, default False in line and bar plots, and True in area plot. #If True, create stacked plot.如果设为真,则为堆叠图,常见于条形图

sort_columns : boolean, default False  # 以字母表顺序绘制各列,默认使用前列顺序

secondary_y : boolean or sequence, default False  # Whether to plot on the secondary y-axis If a list/tuple, which columns to plot on secondary y-axis, 设置第二个y轴(右y轴)

mark_right : boolean, default True # When using a secondary_y axis, automatically mark the column labels with “(right)” in the legend

include_bool: bool, default is False # If True, boolean values can be plotted

Returns:axes : matplotlib.AxesSubplot or np.array of them

2. 演示

2.1 各种图

参考pandas 常见绘图总结

test_dict = {'销售量':[1000,2000,5000,2000,4000,3000],'收藏':[1500,2300,3500,2400,1900,3000]}
data = pd.DataFrame(test_dict,index=['一月','二月','三月','四月','五月','六月'])
data
       销售量	收藏
一月	1000	1500
二月	2000	2300
三月	5000	3500
四月	2000	2400
五月	4000	1900
六月	3000	3000

2.1.1 折线图

普通折线图以折线的上升或下降来表示统计数量的增减变化的统计图,叫作折线统计图。折线统计图不仅可以表示数量的多少,而且可以反映同一事物在不同时间里的发展变化的情况,虽然它不直接给出精确的数据(当然你也可以加上去),但是能够显示数据的变化趋势,反映事物的变化情况。

data.plot(kind='line')

在这里插入图片描述

2.1.2 条形图

条形统计图可以清楚地表明各种数量的多少。
普通条形图:

data.plot(kind='bar')

在这里插入图片描述
堆积条形图:

data.plot(kind='bar', stacked=True)

在这里插入图片描述

2.1.3 横向条形图

data.plot(kind='barh')

在这里插入图片描述

2.1.4 直方图

直方图是数值数据分布的精确图形表示,这是一个连续变量(定量变量)的概率分布的估计

test_dict2 = {'泊松分布':np.random.poisson(50,100),'贝塔分布':np.random.beta(5,1,100)*40}
data2 = pd.DataFrame(test_dict2)
data2
 泊松分布 贝塔分布
0	40	38.001607
1	50	36.588124
2	53	36.325921
3	49	37.138868
4	59	38.503662
...	...	...
95	52	21.731441
96	48	37.274649
97	59	35.666431
98	60	30.777406
99	50	24.558308

100 rows × 2 columns
data2.plot(kind='hist', subplots=True, bins=20, sharex=False, layout=(1,2))

在这里插入图片描述

2.1.5 箱线图

data.plot(kind='box')

在这里插入图片描述

2.1.6 核密度图

data2.plot(kind='kde', subplots=True, grid=True)

在这里插入图片描述

2.1.7 饼图

data.plot(kind='pie', subplots=True,figsize=(10, 8),autopct='%.2f%%',radius = 1.2,startangle = 250,legend=False,colormap='viridis')

在这里插入图片描述
此处有一些特殊的参数:

figsize # 图片的大小。
autopct # 显示百分比。
radius # 圆的半径。
startangle # 旋转角度。
colormap # 颜色。

2.1.8 散点图

data.plot(kind='scatter', x=0, y=1)

在这里插入图片描述

2.2 x轴ticks方向设置

设置rot=0,则将ticks方向设置为水平

data.plot(kind='bar', rot=0)

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-06 12:14:10  更:2021-10-06 12:15:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 10:34:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码