一个用于从JSON创建干净SVG时间轴的库。
项目描述
Pytimeline
pytimeline
是一个命令行工具,用于从JSON创建SVG时间轴。
[!注意] 这是对Jason Reisman的旧时间轴脚本的重写,大部分工作归功于他。我只是整理了一下,并使其成为一个具有命令行界面的包。
安装
该包与Python 3.9+
兼容,并可以使用pip
在您的当前环境中安装。
python -m pip install pytimeline
用法
当该包安装到您的激活环境中时,可以通过python -m pytimeline
来调用它。详细用法如下
Usage: python -m pytimeline [OPTIONS]
Options:
--inputfile PATH Path to the input JSON file with the
timeline data. [required]
--outputfile PATH Path at which to write the output SVG file.
[default: timeline.svg]
--logging [trace|debug|info|warning|error|critical]
Sets the logging level. [default: info]
--help Show this message and exit.
该脚本将解析您的输入文件,并在提供的输出文件夹中导出SVG
文档,或者如果未提供,则在输入文件的同一目录中。
否则,可以导入包中的高级对象并直接使用它
from pytimeline import Timeline
timeline = Timeline(inputfile="your_input.json")
timeline.build()
timeline.save("timeline.svg")
输入数据格式
输入文件是一个描述时间轴的起点和终点、主轴上的刻度以及指向特定日期/时间的调用和突出显示时间段的纪元的JSON
文档。
所有日期字段都可以使用几种常见的日期格式描述,并且可以可选地包括一天中的时间(例如“3/14/15 9:26am”)。日期时间的解析由pendulum
包处理,所有接受的日期格式可以在相关的文档中找到。
必填和可选字段
必填字段是width
、start
和end
。所有其他字段都是可选的。
必填
width
描述输出SVG文档的宽度,高度将自动确定。start
是轴上最左侧的日期/时间。end
是轴上最右侧的日期/时间。
可选
num_ticks
控制从start
到end
日期/时间之间的刻度数(包括)。如果此字段不存在,则不会生成刻度,除了start
和end
日期的刻度。tick_format
描述轴上刻度的字符串格式。请参阅pendulum
包的有效格式。
特殊字段
注释
轴上的注释在callouts
列表中描述,其中每个条目本身也是一个包含两个到三个字符串值的列表
- 第一个值是注释的
description
(例如,“π日”)。它是必需的。 - 第二个值是注释的
date/time
(例如,“3/14/15 9:26am”)。它是必需的。 - 第三个值可以指定注释的
color
,可以是十六进制代码或有效的SVG颜色别名。它是可选的。
注释示例
["Ultimate Pi Day", "3/14/15 9:26am"]
或者,使用自定义注释颜色
["Ultimate Pi Day", "3/14/15 9:26am", "#CD3F85"]
时代
时代是突出显示的时间段,并在eras
列表中描述。与callouts
列表一样,时代列表中的每个条目本身也是一个包含三个或四个字符串值的列表
- 第一个值是时代的
description
(例如,“夏天”)。它是必需的。 - 第二个值是时代的开始
date/time
(例如,“6/21/15 12am”)。它是必需的。 - 第三个值是时代的结束
date/time
(例如,“9/20/15 11:59pm”)。它是必需的。 - 第四个值可以指定时代的
color
,可以是十六进制代码或有效的SVG颜色别名。它是可选的。
时代示例
["Summer 2015", "6/21/15 12am", "9/20/15 11:59pm"]
或者,使用自定义时代颜色
["Summer 2015", "6/21/15 12am", "9/20/15 11:59pm", "Orange"]
简单示例
本README
顶部示例时间线的JSON
输入是
{
"width" : 750,
"start" : "Oct 8 2015",
"end" : "Oct 15 2015",
"num_ticks" : 14,
"tick_format" : "%b %d, %Y - %I:%M%p",
"callouts" : [
["ABC easy as 123", "Oct 14, 2015 3pm"],
["Midnight Event A", "12am Oct 10, 2015", "#DD0000"],
["Noon Event A", "12pm Oct 10, 2015"],
["5pm Event A", "5pm Oct 10, 2015"],
["Something amazing happening", "Oct 11, 2015"],
["Awesome Event B", "Oct 12, 2015", "#DD0000"],
["C", "Oct 13, 2015"],
["Event E", "Oct 14, 2015"]
],
"eras" : [
["Era 1", "12pm Oct 8, 2015", "3am Oct 12, 2015", "#CD3F85"],
["Era 2", "8am Oct 12, 2015", "12am Oct 15, 2015", "#C0C0FF"]
]
}
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
pytimeline-0.3.0.tar.gz (208.4 kB 查看哈希值)
构建分布
pytimeline-0.3.0-py3-none-any.whl (9.6 kB 查看哈希值)