原创:小dull鸟

python数据分析之禅

原文链接:

有时候我们做数据可视化并不需要特别复杂的功能,仅仅是想把简单的数据用图形展示出来

今天就给大家介绍一种非常适合新手的python可视化库--pygal

pygal比较小众,专注于SVG图,擅长交互,最主要的是它能用非常少的代码就可画出非常漂亮的图形

pygal能绘制Line(折线图)、Bar(柱状图)、Histogram(直方图)、Pie(饼图)、Radar(雷达图)、Funnel(漏斗图)、Gauge(仪表盘图)等14种常见可视化图

而且自带16种漂亮的主题,色调相当柔和,感觉很适合我这样细腻温柔的人

pygal的安装比较简单,直接在命令行输入以下代码即可:

pip install pygal

下面,我们依托某宿舍2020年各月生活费花销情况为例,对pygal绘制方法进行介绍

首先pandas读取数据:

import pandas as pd

data=pd.read_excel('生活费开销.xlsx')

我想在jupyter上直接显示pygal的图形,需要创建html的基础模板,你们可以拿去直接用:

import pygal

#设置pygal与jupyter notebook交互

from IPython.display import display, HTML

base_html = """

{rendered_chart}

"""

下面进入主题:

1.pygal绘制折线图(主题:DefaultStyle)

from pygal.style import *

people=data['人员'].unique()

label=data['月份'].unique()

line_chart = pygal.Line(style=DefaultStyle)

line_chart.title = '520寝室2020年生活费花销情况'

line_chart.x_labels = label

for i in people:

line_chart.add(i, data[data.人员==i]['花销'].values.tolist())

HTML(base_html.format(rendered_chart=line_chart.render(is_unicode=True)))#图片渲染

2.pygal绘制柱状图(主题:DarkStyle、NeonStyle)

绘制竖状柱状图

from pygal.style import *

people=data['人员'].unique()

label=data['月份'].unique()

line_chart = pygal.Bar(style=DarkStyle)

line_chart.title = '520寝室2020年生活费花销情况'

line_chart.x_labels = label

for i in people:

line_chart.add(i, data[data.人员==i]['花销'].values.tolist())

HTML(base_html.format(rendered_chart=line_chart.render(is_unicode=True)))#图片渲染

绘制横状柱状图

from pygal.style import *

people=data['人员'].unique()

label=data['月份'].unique()

line_chart = pygal.HorizontalBar(style=NeonStyle)

line_chart.title = '520寝室2020年生活费花销情况'

line_chart.x_labels = label

for i in people:

line_chart.add(i, data[data.人员==i]['花销'].values.tolist())

HTML(base_html.format(rendered_chart=line_chart.render(is_unicode=True)))#图片渲染

3.pygal绘制饼图(主题:DarkSolarizedStyle)

普通饼状图

from pygal.style import *

people=data['人员'].unique()

label=data['月份'].unique()

line_chart = pygal.Pie(style=DarkSolarizedStyle)

line_chart.title = '520寝室2020年1月生活费花销情况'

line_chart.x_labels = label

for i in people:

line_chart.add(i, data[(data.人员==i)&(data.月份=='1月')]['花销'].values.tolist())

HTML(base_html.format(rendered_chart=line_chart.render(is_unicode=True)))#图片渲染

圆环图

from pygal.style import *

people=data['人员'].unique()

label=data['月份'].unique()

pie_chart = pygal.Pie(inner_radius=0.45,style=LightSolarizedStyle)

pie_chart.title = '520寝室2020年1月生活费花销情况'

for i in people:

pie_chart.add(i, data[(data.人员==i)&(data.月份=='1月')]['花销'].values.tolist()[0])

HTML(base_html.format(rendered_chart=pie_chart.render(is_unicode=True)))#图片渲染

4.pygal绘制雷达图(主题:LightStyle)

from pygal.style import *

people=data['人员'].unique()

label=data['月份'].unique()

radar_chart = pygal.Radar(style=LightStyle)

radar_chart.title = '520寝室2020年生活费花销情况'

radar_chart.x_labels = label

for i in people:

radar_chart.add(i, data[data.人员==i]['花销'].values.tolist())

HTML(base_html.format(rendered_chart=radar_chart.render(is_unicode=True)))#图片渲染

5.pygal绘制箱形图(主题:CleanStyle)

from pygal.style import *

people=data['人员'].unique()

label=data['月份'].unique()

box_plot = pygal.Box(style=CleanStyle)

box_plot.title = '520寝室2020年生活费花销情况'

for i in people:

box_plot.add(i, data[data.人员==i]['花销'].values.tolist())

HTML(base_html.format(rendered_chart=box_plot.render(is_unicode=True)))#图片渲染

6.pygal绘制散点图(主题:RedBlueStyle)

from pygal.style import *

people=data['人员'].unique()

label=data['月份'].unique()

dot_chart = pygal.Dot(x_label_rotation=30,style=RedBlueStyle)

dot_chart.title = '520寝室2020年生活费花销情况'

dot_chart.x_labels=label

for i in people:

dot_chart.add(i, data[data.人员==i]['花销'].values.tolist())

HTML(base_html.format(rendered_chart=dot_chart.render(is_unicode=True)))#图片渲染

7.pygal绘制漏斗图(主题:DarkColorizedStyle)

from pygal.style import *

people=data['人员'].unique()

label=data['月份'].unique()

funnel_chart = pygal.Funnel(style=DarkColorizedStyle)

funnel_chart.title = '520寝室2020年生活费花销情况'

funnel_chart.x_labels=label

for i in people:

funnel_chart.add(i, data[data.人员==i]['花销'].values.tolist())

HTML(base_html.format(rendered_chart=funnel_chart.render(is_unicode=True)))#图片渲染

8.pygal绘制仪表盘图(主题:LightColorizedStyle)

from pygal.style import *

people=data['人员'].unique()

label=data['月份'].unique()

gauge_chart = pygal.Gauge(human_readable=True,style=LightColorizedStyle)

gauge_chart.title = '520寝室2020年1月生活费花销情况'

gauge_chart.range = [0, 5000]

for i in people:

gauge_chart.add(i, data[(data.人员==i)&(data.月份=='1月')]['花销'].values.tolist())

HTML(base_html.format(rendered_chart=gauge_chart.render(is_unicode=True)))#图片渲染

细心的读者可以发现,pygal绘制图形的套路基本都一样,其核心的代码也就5行代码,可以说是一招打遍天下无敌手。

机器学习/深度学习算法/自然语言处理交流群

已建立机器学习算-自然语言处理微信交流群!想要进交流群进行学习的同学,可以直接加我的微信号:HIT_NLP。加的时候备注一下:知乎+学校+昵称 (不加备注不会接受同意,望谅解),想进pytorch群,备注知乎+学校+昵称+Pytorch即可。然后我们就可以拉你进群了。群里已经有非得多国内外高校同学,交流氛围非常好。

强烈推荐大家关注机器学习算法与自然语言处理账号和机器学习算法与自然语言处理微信公众号,可以快速了解到最新优质的干货资源。

推荐阅读

python 获取文件名称唯美_5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了...相关推荐

  1. python修改文件名称唯美_5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了...

    原创:小dull鸟 python数据分析之禅 原文链接: 5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了​mp.weixin.qq.com 有时候我们做数据可视化并 ...

  2. python 判断图片中物体位置_Python 10行代码搞定图片中物体检测

    使用Python, 如何编程实现图片中的物体检测[也叫对象检测/object detection]? 怎么知道图像中有哪些物体? 或许您想要计算图像中苹果的数量? 在这篇文章中,我将向您展示如何使用P ...

  3. python利器怎么编程-Python实现翻译小工具!几行代码搞定!装逼利器有没有!

    一.背景 利用Requests模块获取有道词典web页面的post信息,BeautifulSoup来获取需要的内容,通过tkinter模块生成gui界面 二.代码 进群:548377875    即可 ...

  4. Python:PDF转PNG(6行代码搞定)

    之前搜了几个博客,但是pip安装包一直出错,要么就是代码已经比较老了,一些方法已经重命名了.然后在stackoverflow,一次就找到了能用的方法. 首先,在命令行使用pip安装库: pip ins ...

  5. python数学公式编辑工具_1行代码搞定Latex公式编写,这个4.6M的Python小插件,堪称论文必备神器...

    原标题:1行代码搞定Latex公式编写,这个4.6M的Python小插件,堪称论文必备神器 来源:量子位 关注前沿科技 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 萧箫 发自 凹非寺 ...

  6. python做事件研究法_35行代码搞定事件研究法(上)

    作者简介: 祝小宇,个人公众号:大猫的R语言课堂 这期大猫课堂将会教大家如何用35行R代码写出最有效率的事件研究法. 注意,本代码主要使用data.table完成,关于data.table包的相应知识 ...

  7. 万万想不到 10行代码搞定一个决策树

    01决策树模拟实验 文章目录 01决策树模拟实验 要求 决策树简单介绍 搭建环境 产生数据集 划分训练集和测试集 生成决策树 Cross-Validation法 可视化决策树 10行代码搞定决策树 要 ...

  8. resnet50代码_13、SOTA论文实践-学习ResNet(80行代码搞定残差backbone网络)

    0.论文 Camera Distance-aware Top-down Approach for 3D Multi-person Pose Estimation from a Single RGB I ...

  9. 35行代码搞定事件研究法(下)

    作者简介: 祝小宇,个人公众号:大猫的R语言课堂 前文推送: 35行代码搞定事件研究法(上) Hello亲爱的小伙伴们,上期已经讲到如何对单一事件日计算超额收益,本期将会教大家如何针对多个股票多个事件 ...

最新文章

  1. 前端技巧-JS元编程ES6 symbol公开符号
  2. 记一次热更新上传补丁包失败问题
  3. java 中文字符和unicode编码值相互转化
  4. python打开文件要wordcloud吗,使用python创建wordcloud
  5. asm冗余 oracle_oracle 11.2.0.1 rac 修改asm磁盘组的冗余模式(redundancy mode)为normal
  6. 带有.NET Core 3和Electron.NET的多平台桌面HTML编辑器
  7. linux睡眠进程,linux一个进程如何睡眠
  8. 零基础转行Web前端开发自学靠谱吗?菜鸟学习前端的方法分享
  9. 智能优化算法:堆优化算法-附代码
  10. 每天一点正则表达式积累之(?=X)和(?!X)测试(七)
  11. Could not find a version that satisfies the requirement PyQt5-Qt5>=5.15.2 (from pyqt5) (from version
  12. 乐山市计算机学校灵异事件,我也来说个以前上学时候的灵异事件
  13. 抽象代数 04.03 Sylow 子群
  14. 互联网公司各岗位真实工作内容起底
  15. Word中如何制作红头文件?学会技巧提高工作效率
  16. 【ESP 保姆级教程】疯狂传感器篇 —— 案例:UNO/Mega + MQ2烟雾传感器 + MQ3酒精传感器 + MQ7一氧化碳传感器 + OLED
  17. Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: “/zhu“
  18. macOS 上如何禁用 Adob​​e 后台进程,但保存 CPU、内存和网络活动呢
  19. iOS8 对开发人员来说意味着什么?
  20. 多对一(Many2One)

热门文章

  1. android 程序界面美化,Android性能优化之界面优化总结
  2. windows设置定时任务用浏览器打开指定网址(任务计划程序+bat文件)
  3. Blender烤鱼全流程案例教学
  4. AD安装:Cannot find extension ComponentFromSupplierSearch
  5. python在线模拟_在线模拟运行Python工具/Skulpt工具
  6. 和小姐姐面试python,是种什么体验?
  7. 自行车(飞轮)棘轮棘爪原理_超越离合器原理
  8. 想用HTML5做一个逆战的网页,《逆战》之精绝古城·野人沟H5制作大揭秘
  9. LIZ 上班搞笑语录
  10. php jdbc mssql,sql2005 jdbc连接mssql数据库实现方法