一提到用 Python 作图,很多人第一个想到的库肯定是 Matplotlib ,功能强大,但是相应地安装所需要的依赖就多。有些开发者在自己的工作流中有简单作图的需求,但是又不希望引入依赖关系复杂的 Matplotlib,所以就有了 Chart。

Chart 是一个非常新的类库,上线 Github 仅有 10 多天的时间,Star 数也不多。不过我觉得比较有意思,大家可以阅读项目的源代码,学习如何自己开发绘图功能

基本功能

Chart 目前仅支持三种图表类型:柱形图、散点图和直方图,图表数据点可以使用自定义的标记。该库的一个特点,在开头我们也提到了,就是没有任何的第三方依赖,完全是使用标准库中的库实现的。

柱形图

柱形图的创建,非常地简单,传入标签和具体的值等数据,即可快速实现。下面是作者给出的示例:

from chart import bar
x = [500, 200, 900, 400]
y = ['marc', 'mummify', 'chart', 'sausagelink']
bar(x, y)

柱形图默认的数据点标记图形,是 ,但是也支持自定义。

       marc: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇    mummify: ▇▇▇▇▇▇▇      chart: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇
sausagelink: ▇▇▇▇▇▇▇▇▇▇▇▇▇

比如说,可以改成:?

from chart import bar
import pandas as pddf = pd.DataFrame({'artist': ['Tame Impala', 'Childish Gambino', 'The Knocks'],'listens': [8_456_831, 18_185_245, 2_556_448]
})
bar(df.listens, df.artist, width=20, label_width=11, mark='?')
----------------------------------------
Tame Impala: ?????????
Childish Ga: ???????????????????? The Knocks: ???

从上面的示例,还可以看出, bar 函数还接受 pandas 数据框的列数据

直方图

直方图也很简单,提供了 histogram 快捷函数。

from chart import histogram
x = [1, 2, 4, 3, 3, 1, 7, 9, 9, 1, 3, 2, 1, 2]
histogram(x)
-----------------------
▇
▇
▇
▇
▇ ▇
▇ ▇
▇ ▇
▇ ▇     ▇
▇ ▇     ▇
▇ ▇   ▇ ▇

散点图

from chart import scatter
x = range(0, 20)
y = range(0, 20)
scatter(x, y)•                                 • •                               •  • •• • •  •  ••   • • • ••  • ••

RangeScaler

bar 图形为例,我们看到 x 轴的值相差可能会非常大:[500,200,900,400],示例中最大有 700 的差值。在显示图表的时候,我们知道屏幕的范围是有限的,因此必须要限制柱形的最大高度。

给定数值范围后,就需要对 x 轴的值进行预处理,将所有的数据统一到同一个范围内,这也是整个库最为重要、最为核心的部分了。

from chart.preprocessing import RangeScalerrs = RangeScaler(out_range=(0, 10), round=False)
x = range(50, 59)
rs.fit_transform(x)
# output[0.0, 1.25, 2.5, 3.75, 5.0, 6.25, 7.5, 8.75, 10.0]

结语

开头提到,这个库的功能简单,没有任何依赖,因此代码量很少,非常适合大家阅读它的源代码。

不用第三方库,也能用 Python 作图,效果还不错相关推荐

  1. python计算直线与圆的交点,不用第三方库,方便迁移其他语言

    python求圆和线段/直线的交点 计算直线与圆的交点,不用第三方库,方便迁移其他语言 主要应用:图像及几何计算应用 计算直线与圆的交点,不用第三方库,方便迁移其他语言 主要应用:图像及几何计算应用 ...

  2. python语言的第三方库_常用的Python第三方库

    今天公司停电,没上班.跑上来更新个博客,跟大家分享一下我常用的几个第三方 Python 库.Python 语言之所以能够如此流行,除了本身内置许多程序库来保障快速开发之外,目不睱接的第三方库也是一大主 ...

  3. python第三方库排行-140种Python标准库、第三方库和外部工具

    导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...

  4. python第三方库下载-3、python第三方库的安装方式

    前言:在学习Python过程中,经常要用到很多第三方库,面对各种不同情况,Python为我们提供了多种安装方法,这里主要介绍三种方法:pycharm在线安装.pip在线安装(强烈推荐).离线安装. 方 ...

  5. python第三方库是什么意思-python标准库和第三方库的区别

    1.python的标准库是随着pyhon安装的时候默认自带的库. 2.python的第三方库,需要下载后安装到python的安装目录下,不同的第三方库安装及使用方法不同. 3.它们调用方式是一样的,都 ...

  6. python第三方库是什么意思-Python最强大的第三方库,你有必要了解一下!

    写在之前 标准库的内容已经非常多了,我在前面的文章中已经介绍了七八个,没看的可以回头找着去看看.虽然介绍了不少,但是 Python 给编程者的支持不仅仅在于标准库,它还有不可胜数的第三方库.(加小编扣 ...

  7. python绘制地图的第三方库,geopandas,用python画地图原来这么简单!

    pandas应该是大家非常熟悉的Python第三方库,其主要用于数据整理和分析,这次来介绍pandas的一个近亲-geopandas geopandas是用来处理地理空间数据的python第三方库,它 ...

  8. c调用python第三方库_c/c++调用python程序且含tensorflow第三方库

    对于纯python程序而言,用c程序来调用是比较适合的,如果python程序中包含了其他第三方库,则调用极可能出错,且不易查明原因.如笔者曾用c程序调用包含tensorflow的python程序,有的 ...

  9. python web开发第三方库_以下属于Python中Web开发框架第三方库的是__________

    以下属于Python中Web开发框架第三方库的是__________ 答:Django 关于为何要敬业乐群,下列说法错误的是?() 答:敬业乐群可以作为提升我们学习.工作的效率和成果,乃至提升我们生命 ...

最新文章

  1. 面试官问:如果MySQL的自增 ID 用完了,怎么办?
  2. SAP Fiori Elements 公开课第一单元概要介绍
  3. Redis之运维细节
  4. C程序设计语言现代方法18:声明
  5. S5PV210体系结构与接口08:定时器 计数器编程
  6. 阿里达摩院420集python_阿里达摩院推荐的420集的python教程,入门到精通简直不要太简单...
  7. 关于unique()的详解
  8. Spss的基本方法使用步骤
  9. linux 945gse 显卡驱动,HP520的945Expres集成显卡只能以1024x768的模式显示的求助
  10. 数据结构入门(2)——线性表、堆栈和队列
  11. HTML龙卷风特效代码
  12. 什么是Photoshop的Alpha通道(详细图解)
  13. 行人重识别——评价标准
  14. Try to become a quitter 学会放弃
  15. 初中计算机函数的使用教案,初中《函数的使用》说课稿
  16. 数据分析中的运营指标——DAU、MAU、PCU、ARPU、KPI等
  17. CF1428 E. Carrots for Rabbits 贪心+优先队列
  18. 如何选择技术方向和编程语言
  19. 进程的状态和转换 三态模型和五态模型
  20. Windows10开机自动启动软件

热门文章

  1. 5个经典的JavaScript面试题
  2. js解析json字符串数组
  3. linux之循环执行任务
  4. Spring学习之Bean的配置
  5. 菜鸟也玩WebMatrix
  6. 一步一步教你写带图片注释的淡入淡出插件(三)
  7. python二级考试答案分值_2018全国计算机二级考试内容 科目分值设置
  8. 【学习笔记】12、标准数据类型—列表
  9. BAPI:BAPI_CONTRACT_CREATE(内部合同创建)
  10. bseg---faglflexta