> Photo by JOSHUA COLEMAN on Unsplash
您是否曾经想到过数据可视化可以在命令行中进行?
作为最流行的编程语言之一,Python拥有大量促进开发的优秀库,例如Pandas,Numpy,Matplotlib,SciPy等。
但是,在本文中,我将向您介绍一些更有趣而不是非常有用的库。 我相信这些库可以显示Python的另一个方面以及社区的繁荣发展。
1. Bashplotlib
> Photo by David Werbrouck on Unsplash
老实说,当我第一次看到这个库时,我问为什么人们可能需要这个? Bashplotlib是一个Python库,使我们能够在命令行标准输出环境中绘制数据。
很快,我意识到当您没有可用的GUI时,它可能会很有用。 嗯,这种情况可能不会那么频繁,但这并不能阻止我的好奇心,并认为它是一个非常有趣的Python库。
Bashplotlib可以通过pip轻松安装。
pip install bashplotlib
我们来看一些例子。 在下面的代码中,我当然导入了numpy来生成一些随机数组以及bashplotlib。
import numpy as np
from bashplotlib.histogram import plot_hist
arr = np.random.normal(size=1000, loc=0, scale=1)
plot_hist(arr, bincount=50)
输出是这样的
那不是很有趣吗? :)
此外,您可以将数据绘制成文本文件中的散点图。
2. PrettyTable
> Photo by Goran Ivos on Unsplash
我刚刚介绍的Bashplotlib是用于在命令行环境中绘制数据,而PrettyTable是用于以漂亮格式输出表的。
同样,我们可以使用pip轻松安装此库。
pip install prettytable
首先,让我们导入库。
from prettytable import PrettyTable
然后,我们可以使用PrettyTable创建一个表对象。
table = PrettyTable()
一旦有了表对象,就可以开始添加字段和数据行。
table.field_names = ['Name', 'Age', 'City']table.add_row(["Alice", 20, "Adelaide"])
table.add_row(["Bob", 20, "Brisbane"])
table.add_row(["Chris", 20, "Cairns"])
table.add_row(["David", 20, "Sydney"])
table.add_row(["Ella", 20, "Melbourne"])
要显示表格,只需简单地打印即可!
print(table)
PrettyTable还支持您可能想到的几乎每个角度的表样式改进。 例如,您可以在表格中右对齐文本:
table.align = 'r'print(table)
按列对表格排序
table.sortby = "City"
print(table)
您甚至可以获取表的HTML字符串
3. FuzzyWuzzy
> Photo by Brett Jordan on Unsplash
我认为该库不仅非常有趣,而且非常有用。 很多时候,您可能想为程序实现"模糊"搜索功能。 FuzzyWuzzy为此提供了一个现成的轻量级解决方案。
照常从pip安装它。
pip install fuzzywuzzy
导入库:
from fuzzywuzzy import fuzz
让我们做一个简单的测试。
fuzz.ratio("Let's do a simple test", "Let us do a simple test")
如图所示,结果" 93"表示这两个字符串具有93%的相似度,这非常高。
当您有一个字符串列表,并且想要针对所有字符串搜索一个术语时,FuzzyWuzzy将帮助您提取具有相似性的最相关的字符串。
from fuzzywuzzy import process
choices = ["Data Visualisation", "Data Visualization", "Customised Behaviours", "Customized Behaviors"]
process.extract("data visulisation", choices, limit=2)
process.extract("custom behaviour", choices, limit=2)
在上面的示例中,参数限制告诉FuzzyWuzzy为您提取"前n个"结果。 否则,您将获得具有所有这些原始字符串及其相似性分数的元组列表。
4. TQDM
> Photo by Jungwoo Hong on Unsplash
您通常使用Python开发命令行工具吗? 如果是这样,当您的CLI工具正在处理一些耗时的事情时,此有趣的库将通过显示进度栏指示已完成的工作量来为您提供帮助。
再次使用pip安装。
pip install tqdm
当使用范围函数进行for循环时,只需将其替换为tqdm中的trange。
from tqdm import trange
for i in trange(100):
sleep(0.01)
更一般而言,您可能想循环一个列表。 使用tqdm也很容易。
from tqdm import tqdm
for e in tqdm([1,2,3,4,5,6,7,8,9]):
sleep(0.5)
# Suppose we are doing something with the elements
tqdm不仅适用于命令行环境,而且适用于iPython / Jupyter Notebook。
> image courtesy: https://github.com/tqdm/tqdm
5.Colorama
> Photo by Greyson Joralemon on Unsplash
您是否要向命令行应用程序添加一些颜色? Colorama使您可以轻松输出所需颜色的所有内容。
重新安装Colorama需要点子。
pip install colorama
Colorama支持以"前景"(文本颜色),"背景"(背景颜色)和"样式"(颜色的其他样式)呈现输出文本颜色。 我们可以导入
from colorama import Fore, Back, Style
首先,让我们用黄色显示一些警告。
print(Fore.YELLOW)
print("This is a warning!")
然后,让我们尝试使用红色背景色显示一些错误。
print(Back.RED + Fore.WHITE + "This is an error!")
那红色太亮了。 让我们使用"昏暗"风格。
print(Back.RESET + Style.DIM + "Another error!")
在这里,我们将" RESET"设置为返回以将背景色更改为默认值。
" DIM"样式使字体不可见。 当我们要将所有内容恢复为正常时,只需将"样式"设置为" RESET_ALL"
print(Style.RESET_ALL)
摘要
> Photo by twinsfisch on Unsplash
感谢这些为Python社区做出贡献并蓬勃发展的开源开发人员。
在我看到Bashplotlib库之前,我不得不说,我从来没有这样的想法在命令行环境中绘制数据。 无论对您有用还是无效,我都想说人们的发展思想和创造力的多样性永远不会停止。
寿命短,请使用Python!