仅使用Unicode字符生成数字的sparklines。
项目描述
此Python包实现了Edward Tufte的sparklines概念,但仅限于文本,例如:▃▁▄▁▅█▂▅(此内容可能不是在所有浏览器中正确显示)。您可以在维基百科上找到更多有关sparklines的信息。此代码主要用于在如图1所示的传感器网络中进行简单的合理性测试
图1:此类“sparklines”在命令行上的示例用法,显示物联网传感器值(不包括生成代码)。
由于可用的Unicode字符的限制,所有值都为正时效果最佳。即使如此,真正的sparklines看起来更像是线条而不是条形,这是一个真正的挑战,因为它们需要在不同的垂直位置上具有单根水平线的多个字符。这仅适用于专用字体,而这远远超出了此工具的范围,并且会显著复杂化其使用。因此,我们坚持使用以下字符:“▁▂▃▄▅▆▇█”,并使用空格表示缺失值。
此代码在某个时间点针对Python 2.6和2.7进行了测试,但现在不再支持已达到生命周期的结束的Python 2。现在通过Travis-CI测试了Python 3.5到3.8以及PyPy 3。
示例输出
这是一个记录的示例会话,展示了如何使用Sparklines(由于GitHub不支持嵌入Asciinema录制,您将看到指向相应asciicast)的图片
以下是一些命令行示例输出(请注意,在某些浏览器中,这些块字符的垂直对齐可能显示得稍微不正确,下面提到的其他仓库也可能会看到相同的效果)
以下代码的示例
$ sparklines 2 7 1 8 2 8 1 8
▂▇▁█▂█▁█
$ echo 2 7 1 8 2 8 1 8 | sparklines
▂▇▁█▂█▁█
$ sparklines < numbers.txt
▂▇▁█▂█▁█
$ sparklines 0 2. 1e0
▁█▅
安装
您可以使用来自Python软件包索引的pip install sparklines安装此软件包。您还可以克隆此存储库,并通过python setup.py install或pip install -e .安装它。安装后,您将可以通过程序或具有相同名称的命令行工具系统范围内(或如果您使用了虚拟环境,在虚拟环境中)访问sparklines。
测试
要运行测试套件,下载并解压此存储库或克隆它,运行pip install pytest,然后在解压的归档文件中运行pytest tests命令。从下载的存储库的根目录执行。
用法
请注意,以下示例在某些浏览器中可能看起来有些奇怪(对齐不正确或甚至带颜色),但在您的终端、Python或IPython会话或您选择的Python IDE中打印时应完全正常。下面的图2可能比随后复制的示例代码更能清楚地说明您应该期待什么
图2:Python和IPython会话中的示例调用。
命令行
以下是两个命令行示例调用,已复制到本README中
$ sparklines 1 2 3 4 5.0 null 3 2 1
▁▃▅▆█ ▅▃▁
$ sparklines -n 2 1 2 3 4 5.0 null 3 2 1
▁▅█ ▁
▁▅███ █▅▁
程序化
以下是从交互式Python会话中的示例调用,已复制到本README中。主要使用的函数是sparklines.sparklines()。
In [1]: from sparklines import sparklines
In [2]: for line in sparklines([1, 2, 3, 4, 5.0, None, 3, 2, 1]):
...: print(line)
...:
▁▃▅▆█ ▅▃▁
In [3]: for line in sparklines([1, 2, 3, 4, 5.0, None, 3, 2, 1], num_lines=2):
print(line)
...:
▁▅█ ▁
▁▅███ █▅▁
参考
此代码受到了Zach Holman的spark的启发,由Kenneth Reitz转换为名为spark.py的Python模块,并由RegKrieg转换为名为pysparklines的Python包。Roger Allen还提供了一个更短的spark.py。
但由于它非常短,且在Python中易于编码,我们可以添加一些我认为缺少的额外功能,例如
使用多行输出增加Sparkline的分辨率
显示输入数字中的缺失数据
对于负值发出警告(允许,但可能误导)
如果可用termcolor包,使用不同颜色突出显示超过某些阈值的值
在最大长度处包装长的Sparkline
(待办事项)在常规间隔添加分隔符字符,如:
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。
源代码分发
构建分发
sparklines-0.5.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 069e48633fc1af354e9bbdfd0a644c1279d6632a572446aa9d741105f1177000 |
|
MD5 | 1f5ce00c2c9ff57d38ce5f4a856f5441 |
|
BLAKE2b-256 | 4210a55ffb7b5ae130804ebcb53ecbb711a902403fe7efe67739aceeb4daf8f5 |
sparklines-0.5.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 436861df6382a5cf663ea9e0a52dcb5d4f95f5111f8e01eb637eca529e3f6807 |
|
MD5 | b19322b5793e84da9ae5b8a8ab4c2ced |
|
BLAKE2b-256 | e9daa58f65cdf8117ae679ee4ddb3ab502d6ded7be2616d13cb179151e045b94 |