仅使用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第三方库


热门话题
java有没有工具可以将zephyr转换为velocity模板?   java在安卓 studio中从JSON响应中获取值   jvm如何在Java中设计一个好的permgen空间字符串?   java如何防止Rest webservice使用被盗令牌进行身份验证   java无法遍历列表JSTL   找不到用于ResourceServerTokenServices的java Bean SpringSecurityOauth2   java子字符串替换问题   爪哇玻璃鱼3。十、 以编程方式处理任意HTTPSession的终止   java如何检查输入是否为整数,并在最后添加一个命令来重新启动while循环?   引发java ical4j 1.0.6不可解析日期异常   Java等价于Delphi的DBCtrlGrid?   如果发生错误,java将查找下一个预期标记ANTLR 3   java自打开应用程序(创建锁屏)   java为什么netty有自己的ConcurrentHashMap?   Gradle任务中的java拉取和运行依赖项   继承与Java继承的混淆   java使用shell脚本中的版本执行jar   java我无法让Sqlite数据库与带有Maven的JavaFX应用程序IDE Eclipse包正确通信   java控制台日志未通过org打印。阿帕奇。hadoop。mapreduce。作业的waitForCompletion(true)方法   JAVAlang.NoSuchMethodError:apachestorm螺栓中的spring getrequest