Python有哪些数据可视化模块使用起来比较简单?

最近刚写了一篇Plotly Express文章,希望对你有所帮助。

Plotly Express

Plotly Express是一个新的高级Python数据可视化库,它是Plotly.py的高级封装,它为复杂的图表提供了一个简单的语法。只需一次导入,大多数绘图只要一个函数调用,接受一个整洁的Pandas dataframe,就可以创建丰富的交互式绘图。


Plotly Express 安装

惯例,使用 pip进行安装。

pip install plotly_express

Plotly Express支持构建图表类型

  • scatter:在散点图中,每行data_frame由2D空间中的符号标记表示。
  • scatter_3d:在3D散点图中,每行data_frame由3D空间中的符号标记表示。
  • scatter_polar:在极坐标散点图中,每行data_frame由极坐标中的符号标记表示。
  • scatter_ternary:在三元散点图中,每行data_frame由三元坐标中的符号标记表示。
  • scatter_mapbox:在Mapbox散点图中,每一行data_frame都由Mapbox地图上的符号标记表示。
  • scatter_geo:在地理散点图中,每一行data_frame都由地图上的符号标记表示。
  • scatter_matrix:在散点图矩阵(或SPLOM)中,每行data_frame由多个符号标记表示,在2D散点图的网格的每个单元格中有一个,其将每对dimensions彼此相对绘制。
  • density_contour:在密度等值线图中,行data_frame被组合在一起成为轮廓标记,以可视化该值的聚合函数histfunc(例如,计数或总和)的2D分布z。
  • density_heatmap:在密度热图中,行data_frame被组合在一起成为彩色矩形瓦片,以可视化该值的聚合函数histfunc(例如,计数或总和)的2D分布 z。
  • line:在2D线图中,每行data_frame表示为2D空间中折线标记的顶点。
  • line_polar:在极线图中,每行data_frame表示为极坐标中折线标记的顶点。
  • line_ternary:在三元线图中,每行data_frame表示为三元坐标中折线标记的顶点。
  • line_mapbox:在Mapbox线图中,每一行都data_frame表示为Mapbox地图上折线标记的顶点。
  • line_geo:在地理线图中,每一行都data_frame表示为地图上折线标记的顶点。
  • parallel_coordinates:在平行坐标图中,每行data_frame由折线标记表示,该折线标记穿过一组平行轴,每个平行轴对应一个平行轴 dimensions。
  • parallel_categories:在并行类别(或平行集)图中,每行data_frame与其他共享相同值的行组合,dimensions然后通过一组平行轴绘制为折线标记,每个平行轴对应一个dimensions。
  • area:在堆积区域图中,每行data_frame表示为2D空间中折线标记的顶点。连续折线之间的区域被填充。
  • bar:在条形图中,每行data_frame表示为矩形标记。
  • bar_polar:在极坐标图中,每一行都data_frame表示为极坐标中的楔形标记。
  • violin:在小提琴图中,将data_frame行分组成一个曲线标记,以便可视化它们的分布。
  • box:在箱形图中,行data_frame被组合在一起成为盒须标记,以显示它们的分布。
  • strip:在条形图中,每一行都data_frame表示为类别中的抖动标记。
  • histogram:在直方图中,行data_frame被组合在一起成为矩形标记,以可视化该值的聚合函数histfunc(例如,计数或总和)的1D分布y(或者x如果orientation是'h')。
  • choropleth:在等值区域图中,每行data_frame由地图上的彩色区域标记表示。

gapminder数据集说明

我们使用gapminder数据集进行体验 Plotly Express 。

gapminder数据集显示2007年按国家/地区的人均预期寿命和人均GDP 之间的趋势:包含1952~2007年世界各国家人口、GDP发展与/地区的人均预期寿命和人均GDP 之间的趋势。

  • Country:国家,China
  • Continent:洲,Asia
  • Year:年份,1952
  • LifeExp:预期寿命,44
  • POP:人口,556263527
  • GdpPercap:分均 GDP,400.448611
  • iso_alpha:国家编码,CHN
  • iso_num:国家代码,156
上手体验一下,轻松地进行数据可视化。

散点图scatter

常用参数说明:

  • data_frame: 一个'整洁' pandas.DataFrame
  • x:(字符串:列的名称data_frame)此列中的值用于沿笛卡尔坐标沿x轴定位标记。对于水平histogram()s,这些值用作输入histfunc。
  • y:(字符串:列的名称data_frame)此列中的值用于沿笛卡尔坐标中的y轴定位标记。对于垂直histogram()s,这些值用作输入histfunc。
  • color:(字符串:列的名称data_frame)此列中的值用于为标记指定颜色。
  • size:(字符串:列名称data_frame)此列中的值用于指定标记大小。
  • color_continuous_scale:(有效CSS颜色字符串列表)此列表用于在表示的列color包含数字数据时构建连续颜色标度。plotly_express.colors子模块中有各种有用的色标,特别plotly_express.colors.sequential是plotly_express.colors.diverging和plotly_express.colors.cyclical。
  • title:(字符串)图标题。
  • template:(字符串或Plotly.py模板对象)图模板名称或定义。
  • width:(整数,默认None)图形宽度(以像素为单位)。
  • height:(整数,默认600)图形高度(以像素为单位)。

使用散点图描述中国人口与GDP增长趋势图


地理散点图scatter_geo

常用参数说明

  • data_frame:“整洁”pandas.DataFrame
  • lat:(字符串:data_frame)此列的值用于根据地图上的纬度定位标记。
  • lon:(字符串:data_frame)此列的值用于根据地图上的经度定位标记。
  • locations:(字符串:data_frame)该列中的值将根据locationmode并映射到经度/纬度。
  • locationmode:(字符串,“ISO-3”、“美国-州”、“国家名称”之一)确定用于匹配locations地图上的区域。
  • color:(字符串:data_frame)此列的值用于为标记指定颜色。
  • size:(字符串:data_frame)此列的值用于分配标记大小。
  • color_continuous_scale:(有效的css-颜色字符串列表)此列表用于在color包含数字数据。中提供了各种有用的色标。plotly_express.colors子模块,特别是plotly_express.colors.sequential, plotly_express.colors.diverging和plotly_express.colors.cyclical.
  • title:(字符串)图形标题。
  • width:(整数,默认)None)以像素为单位的图形宽度。
  • height:(整数,默认)600)以像素为单位的图形高度。

使用地理散点图描述全球人口与GDP


折线图(line)

常用参数说明

  • data_frame:“整洁”pandas.DataFrame
  • x:(字符串:data_frame)该列的值用于在笛卡尔坐标中沿x轴定位标记。卧式histogram(),这些值用作histfunc.
  • y:(字符串:data_frame)该列的值用于在笛卡尔坐标中沿y轴定位标记。垂直histogram(),这些值用作histfunc.
  • color:(字符串:data_frame)此列的值用于为标记指定颜色。
  • facet_col:(字符串:data_frame)此列中的值用于在水平方向平面子图分配标记。
  • title:(字符串)图形标题。
  • width:(整数,默认)None)以像素为单位的图形宽度。
  • height:(整数,默认)600)以像素为单位的图形高度。

使用折线图描述1952~2007中国与美国人口增长趋势图


条形图(bar)

常用参数说明

  • data_frame:“整洁”pandas.DataFrame
  • x:(字符串:data_frame)该列的值用于在笛卡尔坐标中沿x轴定位标记。卧式histogram(),这些值用作histfunc.
  • y:(字符串:data_frame)该列的值用于在笛卡尔坐标中沿y轴定位标记。垂直histogram(),这些值用作histfunc.
  • color:(字符串:data_frame)此列的值用于为标记指定颜色。
  • facet_row:(字符串:data_frame)此列的值用于向垂直方向上的平面子图分配标记。
  • facet_col:(字符串:data_frame)此列中的值用于在水平方向平面子图分配标记。
  • text:(字符串:data_frame)此列的值以文本标签的形式显示在图中。
  • title:(字符串)图形标题。
  • template:(String或Plotly.py模板对象)图形模板名称或定义。
  • width:(整数,默认)None)以像素为单位的图形宽度。
  • height:(整数,默认)600)以像素为单位的图形高度。

使用条形图描述1952~2007中国与美国人口增长趋势图


等值区域图(choropleth)

常用参数说明

  • data_frame:“整洁”pandas.DataFrame
  • lat:(字符串:data_frame)此列的值用于根据地图上的纬度定位标记。
  • lon:(字符串:data_frame)此列的值用于根据地图上的经度定位标记。
  • locations:(字符串:data_frame)该列中的值将根据locationmode并映射到经度/纬度。
  • locationmode:(字符串,“ISO-3”、“美国-州”、“国家名称”之一)确定用于匹配locations地图上的区域。
  • color:(字符串:data_frame)此列的值用于为标记指定颜色。
  • size:(字符串:data_frame)此列的值用于分配标记大小。
  • color_continuous_scale:(有效的css-颜色字符串列表)此列表用于在color包含数字数据。中提供了各种有用的色标。plotly_express.colors子模块,特别是plotly_express.colors.sequential, plotly_express.colors.diverging和plotly_express.colors.cyclical.
  • title:(字符串)图形标题。
  • width:(整数,默认)None)以像素为单位的图形宽度。
  • height:(整数,默认)600)以像素为单位的图形高度。

使用等值区域图描述各个国家人口数量



若对你有所帮助,欢迎大家评论、留言。

这里简单介绍2个非常好用的Python数据可视化模块—matplotlib和seaborn,对于日常制图来说,完全可以满足需求,而且也非常容易掌握,下面我简单介绍一下这2个模块的安装和使用,感兴趣的朋友可以尝试一下:

matplotlib

这是Python中专门用于数据可视化的一个模块,使用非常广泛,可以制作出各种各样的图表,包括散点图、柱状图、折线图、直方图等,下面我简单介绍一下这个模块:

1.首先,安装matplotlib模块,这个直接在cmd窗口输入命令“pip install matplotlib”就行,如下,我的环境已经正确安装:

2.安装完成后,我们就可以直接编程来实现数据可视化了,测试代码如下(官网教学示例),简单绘制了一个散点图,基本思想先规整化数据,然后设置相关绘制参数,最后再绘制显示出来:

程序运行截图如下,效果还是非常不错的:

3.更多制图的话,可以参考官网教程,每个参数及其功能都介绍的非常详细,示例也非常丰富,都有源码可供下载,对于开发者使用来说,非常有帮助:

seaborn

这是基于matplotlib的一个数据可视化模块,是对matplotlib基本功能的更高级封装,去掉了matplotlib许多默认参数的配置,因此对用户来说,代码量更少,也更容易学习和掌握,下面我简单介绍一下这个模块:

1.首先,安装seaborn模块,这个也直接在cmd窗口输入命令“pip install seaborn”就行,如下,安装非常迅速:

2.安装完成后,我们就可以直接编程来实现数据可视化了,测试代码如下,一个简单的气泡图(官网示例),基本思想先加载数据,然后plot绘制,最后再显示出来:

程序运行效果如下,效果也非常不错:

3.更多示例的话,也直接参考官网教程就行,参数及其功能都介绍的非常详细,源码也可以直接下载到本地学习和使用,非常方便:

至此,我们就完成了Python数据可视化模块matplotlib和seaborn的安装和简单使用。总的来说,这2个模块使用起来非常不错,对于日常数据可视化来说,完全可以满足需求,只要你有一定的Python基础,熟悉一下相关文档和示例,很快就能掌握的,当然,还有许多其他可视化模块,像pyecharts、plotly Express等也有非常不错,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

相关代码参考