仅使用Unicode字符为数字生成迷你图。

sparklines的Python项目详细描述


cipypi

这个python包实现了edward tufte的sparklines概念,但是 仅限于文本,例如:~9601;__(我可能没有显示 在每个浏览器中都正确)。您可以找到有关迷你图的更多信息 on Wikipedia。此代码主要是为运行 如下图1所示的传感器网络的合理性测试:

example usecase with sensor values

图1:命令行上此类“迷你图”的示例用例, 显示物联网传感器值(此处不包括生成代码)。

由于可用的Unicode字符的限制,当 价值观是积极的。即使是真正的火花看起来更像线条 不像酒吧是一个真正的挑战,因为他们需要多个 在不同垂直位置有一条水平线的字符。这个 只能使用专用字体,这远远超出了 工具,这将大大复杂化其使用。所以我们坚持这些 字符:“__ ~9605;__”,对于缺少的值使用空白。

这段代码在Python2.6到2.7和3.2到3.5中测试得很好。

样本输出

这是一个记录的示例会话,演示如何使用sparklines(作为 github不呈现嵌入的Asciinema录制,您将在这里看到一个图像 指向各自的 asciicast):

https://asciinema.org/a/5xwfvcrrk09fy3ml3a8n67hep.png

下面是命令行上的一些输出示例(请注意 浏览器可以显示这些块字符的垂直对齐方式 稍有错误,下面引用的其他回购协议也有同样的效果:

下面的代码示例:

$ sparklines 27182818
▂▇▁█▂█▁█
$ echo27182818| sparklines
▂▇▁█▂█▁█
$ sparklines < numbers.txt
▂▇▁█▂█▁█
$ sparklines 02. 1e0
▁█▅

安装

可以使用Python Package Index中的pip install sparklines安装此包。 您还可以克隆此存储库并通过^{tt3}安装它$ 或pip install -e .。 安装后,您将可以访问整个系统(或在您的virtualenv中 如果您已经使用了它)来sparklines,则可以通过 具有相同名称的命令行工具。

测试

要运行(仍然很小的)“测试套件”,请下载并解压缩此存储库 或者克隆它,并在解包的 档案文件。这将使用包含的pytest包的缩小版本 在这个包中的文件test/runtests.py。如果你有优秀的 pytest包已安装您也可以从 已下载存储库的根文件夹。

用法

请注意下面的示例可能看起来有点古怪(错位或 即使是彩色的)在一些浏览器中,但当您打印时应该是完全正确的 这在您的终端、python或ipython会话或您选择的python ide中实现。 下面的图2可能比复制的示例更好 此后的代码:

example interactive invocation

图2:来自python和ipython会话的调用示例。

命令行

下面是从命令行调用的两个示例,复制到此自述文件中:

$ sparklines 12345.0 null 321▁▃▅▆█ ▅▃▁

$ sparklines -n 212345.0 null 321  ▁▅█ ▁
▁▅███ █▅▁

编程

下面是来自交互式python会话的调用示例,复制到 这个自述文件。以编程方式使用的主要函数是 sparklines.sparklines()

In[1]:fromsparklinesimportsparklinesIn[2]:forlineinsparklines([1,2,3,4,5.0,None,3,2,1]):...:print(line)...:▁▃▅▆█▅▃▁In[3]:forlineinsparklines([1,2,3,4,5.0,None,3,2,1],num_lines=2):print(line)...:▁▅█▁▅████▅▁

参考文献

这段代码的灵感来自zach holman的spark,转换成python模块 由Kenneth Reitz作为spark.py 并通过regkrieg发送到一个名为pysparklines的python包。 罗杰·艾伦提供了一个均衡的shorter spark.py

但是由于它很短而且易于用python编写代码,我们可以添加一些 我缺少的其他功能,如:

  • 使用每个迷你图的多个输出行提高分辨率
  • 显示输入数字中缺少数据的间隙
  • 对负值发出警告(允许,但有误导性)
  • 使用不同的 颜色(如果termcolor包可用)
  • 以最大长度包装长迷你图
  • (待办事项)添加以固定间隔使用分隔符,如:

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Spring 4升级后未加载java应用程序上下文   java Android 2.3.3 internet可以在我的Galaxy S上运行,但不能在我的Galaxy选项卡上运行?(许可?)   java通过不改变其原始位置对大小写字母进行排序   java Spring Boot一直在破坏我的电脑。。。sts的最佳配置是什么。Windows 10上的ini文件?   css Java Spring+引导问题   java Jackson将GeoJsonPoint序列化为纬度/经度   xml Java Transformer:如何将其结果生成OutputStream?   java如何更改字体、文本大小和设置文本位置?   在JavaSpringHibernate3.6.3中,如何告诉一个方法等待,直到获得锁,以及如何重试失败的事务?   java安卓服务代替线程   Java Swing使用鼠标移动JFrame