Plotly for Wagtail CMS
项目描述
Wagtail Plotly
为Wagtail提供交互式可视化的表格数据输入。开发人员可以通过代码管理图形可用性和样式,并允许用户通过JSON在管理界面中应用进一步样式。它使用Plotly.py,因此应该可以将Plotly支持的所有可视化轻松提升到Wagtail。
安装
从 PyPI 安装
pip install wagtail-plotly
然后将以下内容添加到项目的 INSTALLED_APPS
中。
'wagtail.contrib.table_block',
'wagtail_plotly',
'wagtail_json_widget',
设置
WAGTAIL_PLOTLY_INCLUDE_PLOTLYJS
默认: 'https://cdn.plot.ly/plotly-1.58.4.min.js'
提供一个URL字符串,指定Plotly JS库的位置
DEFAULT_PLOTLY_JSON_DIRECTORY
默认: 'plotly'
要查找自定义 json 图表的 app
目录名称。Wagtail Plotly 会搜索所有已安装的应用,寻找匹配 DEFAULT_PLOTLY_JSON_DIRECTORY
值的目录,并尝试加载其中包含的任何 .json
文件。查看自定义 以获取更多信息。
使用概述
有几个图块可以直接使用
添加其中一个图块后,您将获得输入字段来管理图表内容,主要是标题和数据,以及布局/样式选项。默认有一个选项可供使用,开发者可以通过使用 Plotly 的架构 通过 .json
文件添加更多选项。查看自定义
此应用程序还提供了支持通过 CMS UI 中的 json 字段逐个定制的上述图块版本。
示例使用
使用它的一种方法是创建一个 StreamBlock
from wagtail import blocks
from wagtail_plotly.blocks import (
BarChartBlock,
ContourPlotBlock,
HeatmapPlotBlock,
LinePlotBlock,
PieChartBlock,
ScatterPlotBlock,
)
class MyStreamBlock(blocks.StreamBlock):
bar_chart = BarChartBlock()
contour_plot = ContourPlotBlock()
heatmap_plot = HeatmapPlotBlock()
line_plot = LinePlotBlock()
pie_chart = PieChartBlock()
scatter_plot = ScatterPlotBlock()
将 StreamBlock
添加到 Wagtail 页面上的 StreamField
from wagtail.admin.edit_handlers import StreamFieldPanel
from wagtail.fields import StreamField
from wagtail.models import Page
from .blocks import MyStreamBlock
class MyPage(Page):
body = StreamField(MyStreamBlock(), null=True)
content_panels = Page.content_panels + [
StreamFieldPanel('body'),
]
然后在页面模板中
{% load static wagtailcore_tags %}
{% include_block page.body %}
自定义
配置 plotly
图表可能很复杂,因为有很多选项可供选择。plotly
提供 Chart Studio,用户可以从其中创建和导出 JSON 数据的图表和布局。
Wagtail Plotly 设计为通过开发者最少的努力消费这些数据的一个子集:Wagtail Plotly 会查找每个已安装应用中名为 plotly
的目录(默认情况下),并假定其中的任何 .json
文件都是用户作为 图表布局
选项呈现的配置选项。通过这种方式,开发者可以为最终用户提供管理的图表配置,以覆盖默认设置。
例如:my_plot.json
可能包含
{
"layout": {
"xaxis": {
"gridcolor": "#dddddd",
"mirror": true
},
"yaxis": {
"gridcolor": "#dddddd",
"mirror": true
},
"autosize": true,
"colorway": [
"#4c78a8",
"#f58518",
"#e45756",
"#72b7b2",
"#54a24b",
"#eeca3b",
"#b279a2",
"#ff9da6",
"#9d755d",
"#bab0ac"
]
}
}
自定义 StreamField 图块
Wagtail Plotly 中的图表是一组共享公共基类 BasePlotBlock
的 Wagtail StreamField 图块。它们可以直接使用,也可以扩展以创建自定义图表或 Plotly 中默认未处理的 Plotly 功能。
所有图块都有一个用于输入图表数据的 plot_data
字段(基于 wagtail.contrib.table_block
),以及一个用于从表中提取数据以准备绘图的可调用方法 build_data
。
创建新的图块
可以像往常一样创建新的图块:从 BasePlotBlock
或上述图块之一进行子类化。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。