pandas to_csv参数详解_【Python基础】Pandas数据可视化原来也这么厉害

一、可视化概述
在Python中,常见的数据可视化库有3个:
matplotlib作为最核心的库,在数据可视化领域扮演着基础角色。它提供了丰富的API接口和灵活的功能选项,在实际应用中确实需要投入时间和精力去掌握它们的基本用法和常见场景。
seaborn: 它是基于matplotlib构建的,并能够满足大多数可视化需求;对于特殊的可视化需求,则需要深入学习matplotlib。
PyECharts:与上述两个库相比,在可视化领域具有显著优势,并且在网页兼容性方面表现卓越。能够实现丰富的动态可视化效果的同时其功能类型也具有多样性。例如这个图表(https://www.pyecharts.org)是一个强大的工具
今天将介绍Pandas的数据可视化功能;而Pandas则主要用于数据处理与分析;虽然不如前面提到的一些库功能强大;然而其便捷性在于只需简单的几行代码即可完成复杂的分析任务;生成的图表不仅美观还能直观地展示数据信息
二、直接看案例
在Pandas库中包含11种基础类图形可视化及其绘制方法介绍,在此基础上还有一些高级功能和技巧需要掌握。我们可以按照顺序逐一学习它们的基本绘制步骤。
import pandas as pdimport numpy as npdf= pd.DataFrame(np.random.rand(10, 4), columns=['A','B','C','D'])
01、柱状图-纵向
df.plot.bar()

stacked=True,画堆叠柱状图
df.plot.bar(stacked=True)

02、柱状图-横向
df.plot.barh()

同样,stacked=True,画堆叠柱状图
df.plot.barh(stacked=True)

03、面积图
df.plot.area(alpha = 0.9)

df.plot.area(stacked=True,alpha = 0.9)

04、密度图-kde
df.plot.kde()

05、密度图-density
df.plot.density()

06、直方图
换个数据集
df = pd.DataFrame({'A': np.random.randn(1000) + 1, 'B': np.random.randn(1000), 'C': np.random.randn(1000) - 1}, columns=['A', 'B', 'C']) df.plot.hist(bins=200)

df.plot.hist(stacked=True, bins=20)

df= pd.DataFrame(np.random.rand(1000, 4), columns=['A','B','C','D'])df.diff().hist(color='k', alpha=0.7, bins=50)

07、箱盒图
df= pd.DataFrame(np.random.rand(100, 4), columns=['A','B','C','D'])df.plot.box()

vert=False也可以换成横向
df.plot.box(vert=False)

08、散点图
df.plot.scatter(x='A',y='B')

09、蜂巢图
df = pd.DataFrame(np.random.randn(1000, 2), columns=['a', 'b'])df['b'] = df['b'] + np.arange(1000)df.plot.hexbin(x='a', y='b', gridsize=25)

07、饼图
series = pd.Series(3 * np.random.rand(4), index=['a', 'b', 'c', 'd'], name='series')series.plot.pie(figsize=(6, 6))

series.plot.pie(labels=['AA', 'BB', 'CC', 'DD'], colors=['r', 'g', 'b', 'c'],autopct='%.2f', fontsize=20, figsize=(6, 6))

08、矩阵散点图
from pandas.plotting import scatter_matrixdf = pd.DataFrame(np.random.randn(1000, 4), columns=['a', 'b', 'c', 'd'])scatter_matrix(df, alpha=0.2, figsize=(6, 6), diagonal='kde')

09、安德鲁斯曲线
加载自己的数据,关注公众号【AI入门学习 】回复 iris 获取数据集
data = pd.read_csv('C:/Users/wuzhengxiang/Desktop/iris.csv')pd.plotting.andrews_curves(data , 'Name')

andrews_curves(data, 'Name', colormap='winter')

10、平行坐标图
该图也是使用自己加载的iris数据集
from pandas.plotting import parallel_coordinatesparallel_coordinates(data, 'Name', colormap='gist_rainbow')

11、Lag Plot
from pandas.plotting import lag_plotdf= pd.Series(0.1 * np.random.rand(1000) + 0.9 * np.sin(np.linspace(-99 * np.pi, 99 * np.pi, num=1000)))lag_plot(df)

12、默认函数plot
直接画图,默认为折线图
df= pd.DataFrame(np.random.rand(12, 4), columns=['A','B','C','D'])df.plot()

df.plot(subplots=True,layout=(2, 2), figsize=(15, 8))

df= pd.DataFrame(np.random.rand(1000, 4), columns=['A','B','C','D'])df.plot()

df.plot(subplots=True,layout=(2, 2), figsize=(15, 8))

13、bootstrap_plot
s = pd.Series(np.random.uniform(size=100))pd.plotting.bootstrap_plot(s)

三、参数详解
1、官方文档
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.html
https://pandas.pydata.org/pandas-docs/version/0.18.1/visualization.html
2、参数介绍
DataFrame.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, xticks=None, yticks=None, xlim=None, ylim=None, rot=None, fontsize=None, colormap=None, position=0.5, table=False, yerr=None,xerr=None, stacked=True/False, sort_columns=False, secondary_y=False, mark_right=True, **kwds)
e, legend=True, style=None, logx=False, logy=False, loglog=False, xticks=None, yticks=None, xlim=None, ylim=None, rot=None, fontsize=None, colormap=None, position=0.5, table=False, yerr=None, xerr=None, stacked=True/False, sort_columns=False, secondary_y=False, mark_right=True, **kwds)
特别注意:每个绘图类型都对应着一种特定的具体实现方式: df.plot(kind='line')相当于df.plot.line()的效果。
x : label or position, default None#指数据列的标签或位置参数
y : label, position or list of label, positions, default None
kind : str#绘图类型
‘line’ : line plot (default)#折线图
‘bar’ : vertical bar plot#条形图。stacked为True时为堆叠的柱状图
‘barh’ : horizontal bar plot#横向条形图
‘hist’ : histogram#直方图(数值频率分布)
‘box’ : boxplot#箱型图
‘kde’ : 核密度估计图(KDE plot),通常会将核密度估计曲线绘制在柱状图上以显示数据分布情况。
‘density’ : same as ‘kde’
‘area’ : area plot#与x轴所围区域图(面积图)。当stacked=True时, 每一列的数据必须全为正数或全为负数; stacked=False时则无需满足任何数据要求.
‘pie’ : pie plot#饼图。数值必须为正值,需指定Y轴或者subplots=True
‘scatter’ : scatter plot#散点图。需指定X轴Y轴
‘hexbin’ : hexbin plot#蜂巢图。需指定X轴Y轴
‘hexbin’ : hexbin plot#蜂巢图。需指定X轴Y轴
ax代表matplotlib axes对象,默认值设为None。该matplotlib subplot对象用于在其绘制内容(如子图或坐标轴)中显示图形数据。若未指定则默认采用当前可用的matplotlib subplot。其中变量与函数通过调整figure及其attached axes中的元素(如标题、标签、点与线等)来共同定义figure及其attached axes的内容。即用于绘制在画布上的图形。
subplots : boolean, default False#是否对列分别作子图
shared_x: 布尔值, 默认设置为 True; 如果 ax 无指定, 则默认设为 True; 若有指定则取其值
Whenever subplots are enabled (subplots=True), the shared x-axis should be utilized, with certain x-axis labels turned off. The default behavior is True when no specific axes object (ax) is provided. However, if an axes object (ax) is specified, it defaults to False. It's important to note that providing both an axes object (ax) and setting sharex=True will cause all axes' x-labels to be modified across the entire figure.
sharey : boolean, default False#如果有子图,子图共y轴刻度,标签
In case subplots=True, share y axis and set some y axis labels to invisible
layout : tuple (rows, columns) for the layout of subplots#子图的行列布局
figsize : a tuple (width, height) in inches#图片尺寸大小
use_index : boolean, default True#默认用索引做x轴
title : string#图片的标题用字符串
Title to use for the plot
grid : boolean, default None#图片是否有网格
legend : False/True/’reverse’#子图的图例 (默认为True)
style : list or dict#对每列折线图设置线的类型
logx : boolean, default False#设置x轴刻度是否取对数
logy : boolean, default False
loglog : boolean, default False#同时设置x,y轴刻度是否取对数
xticks : sequence#设置x轴刻度值,序列形式(比如列表)
yticks : sequence#设置y轴刻度,序列形式(比如列表)
xlim : float/2-tuple/list#设定坐标轴的取值范围。数值(最小值),以及区间或列表(表示范围)
ylim : float/2-tuple/list
rot : int, default None#设置轴标签(轴刻度)的显示旋转度数
fontsize : int, default None#设置轴刻度的字体大小
指定图的颜色模式:该参数可接受字符串或matplotlib的颜色映射对象,默认设为无。用于定义绘图区域的颜色方案。
colorbar : boolean, optional #柱子颜色
If True, plot colorbar (only relevant for ‘scatter’ and ‘hexbin’ plots)
position : double #条形图的对齐设置,对应于取值范围[0,1]从左下方至右上方,默认值为0.5(居中排列)
layout : tuple (optional) #布局。layout=(2, 3)两行三列,layout=(2, -1)两行自适应列数
Eg. df.plot(subplots=True, layout=(2, -1), sharex=False)
表格类型可设为布尔值、Series或DataFrame,默认设置为False。
在图旁插入表格。
若设置为True,则会基于DataFrame中的数据绘制表格。
并且确保数据按转置方式排列以符合matplotlib的标准布局。
yerr : DataFrame, Series, array-like, dict and str
See Plotting with Error Bars for detail.
xerr : same types as yerr.
stacked: 布尔值,默认情况下设置为False用于线图和条形图绘制,在面积图中则设置为True以实现叠加效果。当此参数被启用时,默认会生成一个叠加式的图表展示
sort_columns : boolean, default False #对列名称进行排序以确定绘图顺序
The variable secondary_y is defined as a boolean or sequence type with a default value of False, used to configure the secondary y-axis (right-side auxiliary y-axis).
Deciding whether to plot on the secondary y-axis, if a list or tuple, the columns to plot.
mark_right : boolean, default True
往期精彩回顾
适合初学者入门人工智能的路线及资料下载
``
机器学习及深度学习笔记等资料打印
``
机器学习在线手册
``
深度学习笔记专辑
``
《统计学习方法》的代码复现专辑
``
AI基础下载
``
机器学习的数学基础专辑
``
获取本站知识星球优惠券,复制链接直接打开:
``
https://t.zsxq.com/qFiUFMV
``
本站qq群704220115。
``
加入微信群请扫码:
``

``
