跳转到主要内容

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 或上述图块之一进行子类化。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。

源分布

wagtail_plotly-0.0.4.tar.gz (15.2 kB 查看哈希值)

上传时间

构建分布

wagtail_plotly-0.0.4-py3-none-any.whl (14.6 kB 查看哈希值)

上传于 Python 3

由支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面