用于将ascii艺术制作成网络图的python库。

asciigraf的Python项目详细描述


https://travis-ci.org/opusonesolutions/asciigraf.svg?branch=masterhttps://coveralls.io/repos/github/opusonesolutions/asciigraf/badge.svg?branch=masterhttps://img.shields.io/badge/License-MIT-yellow.svghttps://badge.fury.io/py/asciigraf.svghttps://img.shields.io/pypi/pyversions/asciigraf.svgMaintainability

asciigraf是一个python库,它将网络的ascii图转换为 网络对象。它返回一个networkx 输入文本中每个字母数字元素的节点图;节点 在图中连接以匹配图中表示的边 通过-/\|

安装

可以使用pip从pypi安装ascigraf:

~/$ pip install asciigraf

用法

asciigraf需要一个包含二维ascii图的字符串。节点可以是 由A-Za-z0-9中的字符组成的字母数字字符串, 和_, {, }。边可以由-/\|组成。

importasciigrafnetwork=asciigraf.graph_from_ascii("""
          NodeA-----
                   |
                   |---NodeB
                                     """)print(network)>>><networkx.classes.graph.Graphat0x7f24c3a8b470>print(network.edges())>>>[('NodeA','NodeB')]print(network.nodes())>>>['NodeA','NodeB']

networkx提供了将数据附加到节点和边以及ascigraf的工具 以多种方式利用它们;在下面的示例中,您可以看到 asciigraf使用这个将x, yposition元组附加到每个节点 指示每个节点在(x,y)平面上的位置 开始(0,0在左上角)。它还附加了一个length属性 到与该边中的字符数匹配的每个边,以及 作为每个字符的位置列表,边

print(network.nodes(data=True))>>>[('NodeA',{'position':(10,1)}),('NodeB',{'position':(23,3)})]print(network.edges(data=True))>>>[('NodeA','NodeB',OrderedDict([('length',10),'points',[...]))]print(network.edge['NodeA']['NodeB']['points'])>>>[(15,1),(16,1),(17,1),(18,1),(19,1),(19,2),(19,3),(20,3),(21,3),(22,3)]

asciigraf还允许您使用内嵌标签注释图形的边- 用括号表示。标签的内容将贴在边缘上 用属性名label绘制它。

network=asciigraf.graph_from_ascii("""

    A---(nuts)----B----(string)---C
                  |
                  |
                  |
                  D---(string)----E

""")print(network.get_edge_data("A","B")["label"])>>>nutsprint(network.get_edge_data("B","C")["label"])>>>stringprint(network.get_edge_data("D","E")["label"])>>>stringprint(hasattr(network.get_edge_data("B","D"),"label"))>>>False

玩得开心!

importasciigrafnetwork=asciigraf.graph_from_ascii("""
          s---p----1---nx
         /    |        |
        /     |        0---f
       6l-a   c--
      /   |      \--k
     /   ua         |  9e
    q      \        | /
            \-r7z   jud
                \    |
                 m   y
                  \  |
                   v-ow
                             """)

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

推荐PyPI第三方库


热门话题
java TCP服务器未关闭电脑   在XML中定义“数字”时,java“imeOptions”不起作用   没有持久性的java Multiple entityManagerFactory。xml   java Netbeans使用Tomcat连接进行调试被拒绝   java二进制搜索已排序的E列表(开始时间,结束时间),以查找给定时间范围(t1,t2)匹配的所有E   python Jython等价于Java代码   java如何在Ninjaframework中的ConstraintValidator中使用依赖项注入?   Java扫描器类在C中做什么#   java同时支持公共接口API和内部具体API?   java如何使<T extends E>泛型类型参数包含在内?   java添加按钮在array或db中单击或点击以在安卓中重复相同的操作   xml解析Java:如何防止EntityResolver#resolveEntity(String publicId,String systemId)中的“systemId”被绝对化到当前工作目录   jakarta ee在Java中实现OAuth协议   JavaSpringMVC抛出了404,带有普通请求映射   java如何实现hibernate二级缓存上的查询与连接?   spring发生JNI错误,线程“main”java中出现异常。lang.NoClassDefFoundError:org/springframework/context/ApplicationContext   java为什么在此GraphQL设置中不调用DataFetcher?   java忽略cucumber中的特定标记,但运行所有其他标记