欧卡2中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

需要三步,才能开始

只需两步,慢速开始

欧卡2入门方向盘选莱仕达V9莱仕达折叠便携游戏方向盘支架欢迎地图Mod入驻
查看: 10899|回复: 2
收起左侧

【超级图表】使用手册

[复制链接]
知行 发表于 2018-3-13 23:58 | 显示全部楼层 |阅读模式

超级图表使用指南

简介

DiscuzX 超级图表 是一款能将特定语法文本显示为图表的插件,目前支持GraphvizAsymptote思维导图DitaaGnuplot二维码Message Sequence Chartblockdiag雷达图图书封面等类型的图表。插件具有以下特点:

  1. 论坛只存储图形描述语言的代码,图片通过远程接口生成并存储在远程服务器,不占用论坛空间
  2. 支持图表类型取决于远程接口,新增功能时仅需要扩展远程接口,插件无需变动,扩展能力强
  3. 提供可选的可视化编辑器zxsq_editor),可按需安装

基本语法

[plot 画图引擎 输出格式]
图形描述代码
[/plot]

另外,Markdown插件也支持使用超级图表,语法如下:

```plot:画图引擎 输出格式
图形描述代码
```

画图引擎列表

引擎代码 名称 说明
gv:(dot,neato,fdp,sfdp,twopi,circo) Graphviz 用于绘制DOT语言脚本描述的图形
asy Asymptote 矢量绘图语言
blockdiag Blockdiag 类似dot语言的一种绘制流程图的工具
cover(:ten) 图书封面 用于生成图书封面
ditaa DIagrams Through Ascii Art 由Ascii Art生成图片的工具
gnuplot gnuplot 绘图工具
markdown:(dot,neato,fdp,sfdp,twopi,circo) Markdown思维导图 将Markdown转为dot语言用graphviz生成思维导图
msc Message Sequence Chart 类似dot的一种生成消息序列图的工具
qr 二维码 生成给定字符串的二维码图片
radar 雷达图 从csv格式文本生成雷达图

实例

以下示例将使用Markdown语法,直接使用超级图表时使用[plot]标签即可。

Graphviz

```plot:gv:dot svg
digraph finite_state_machine {
        rankdir=LR;
        size="8,5"
        node [shape = doublecircle]; LR_0 LR_3 LR_4 LR_8;
        node [shape = circle];
        LR_0 -> LR_2 [ label = "SS(B)" ];
        LR_0 -> LR_1 [ label = "SS(S)" ];
        LR_1 -> LR_3 [ label = "S($end)" ];
        LR_2 -> LR_6 [ label = "SS(b)" ];
        LR_2 -> LR_5 [ label = "SS(a)" ];
        LR_2 -> LR_4 [ label = "S(A)" ];
        LR_5 -> LR_7 [ label = "S(b)" ];
        LR_5 -> LR_5 [ label = "S(a)" ];
        LR_6 -> LR_6 [ label = "S(b)" ];
        LR_6 -> LR_5 [ label = "S(a)" ];
        LR_7 -> LR_8 [ label = "S(b)" ];
        LR_7 -> LR_5 [ label = "S(a)" ];
        LR_8 -> LR_6 [ label = "S(b)" ];
        LR_8 -> LR_5 [ label = "S(a)" ];
}
```
superplot

Asymptote矢量绘图

```plot:asy
import math;
import graph;
size(0,400);

real f(real t) {return 2*cos(t);}
pair F(real x) {return (x,f(x));}

draw(polargraph(f,0,pi,operator ..));

defaultpen(fontsize(20pt));

xaxis("$x$");
yaxis("$y$");

real theta=radians(50);
real r=f(theta);
draw("$\theta$",arc((0,0),0.5,0,degrees(theta)),red,Arrow,PenMargins);

pair z=polar(r,theta);
draw(z--(z.x,0),dotted+red);
draw((0,0)--(z.x,0),dotted+red);
label("$r\cos\theta$",(0.5*z.x,0),0.5*S,red);
label("$r\sin\theta$",(z.x,0.5*z.y),0.5*E,red);
dot("$(x,y)$",z,N);
draw("r",(0,0)--z,0.5*unit(z)*I,blue,Arrow,DotMargin);

dot("$(a,0)$",(1,0),NE);
dot("$(2a,0)$",(2,0),NE);
```
superplot

blockdiag

```plot:blockdiag
blockdiag {
  default_node_color = lightyellow;
  default_group_color = lightgreen;
  default_linecolor = magenta;
  default_textcolor = red;

  A -> B -> C;
       B -> D;
  group {
    C; D;
  }
}
```
superplot

图书封面

```plot:cover
图书标题
作者
```
superplot

ditaa

```plot:ditaa
       +----------+ edit +----------+   input +----------+ compile +----------+
       |  cPNK    |      |  cRED    |         |   cGRE   |         |  cPNK    |
       | refined  |<-----+ h,cpp    +-------->+ compiler,+-------->+Executable|
       |   h,cpp  |      |          |         | linker   |         |   File   |
       | {s}      |      |  {io}    |         |          |         |    {s}   |
       +----------+      +----+-----+         +----------+         +----------+
                              | input
                              v
                         +----------+
                         |  cGRE    |
                         | doxygen  |
                         |          |
                         +----+-----+
                              | process
                              v
                         +----------+
                         |  cPNK    |
                         | Doxgen   |
                         | Document |
                         |    {d}   |
                         +----------+
```
superplot

思维导图

```plot:markdown
# plot
## graphviz
### dot
### neato
### fdp
### sfdp
### twopi
### circo
## ditaa
## gnuplot
## markdown mindmap
### graphviz
```
superplot

gnuplot

```plot:gnuplot
plot sin(x)*x;
```
superplot

Message Sequence Chart

```plot:msc
# Fictional client-server protocol
msc {
 arcgradient = 8;

 a [label="Client"],b [label="Server"];

 a=>b [label="data1"];
 a-xb [label="data2"];
 a=>b [label="data3"];
 a<=b [label="ack1, nack2"];
 a=>b [label="data2", arcskip="1"];
 |||;
 a<=b [label="ack3"];
 |||;
}
```
superplot

二维码

```plot:qr
http://www.tecbbs.com
```
superplot

雷达图

```plot:radar
name,价格,易用性,性能,外观,功能
iphoneX,.5,.9,1,.9,.8
Mi6,.8,.9,.9,.8,.8
P10,.6,.9,.9,.8,.8
```
superplot
liujindong 发表于 2021-6-25 11:18 | 显示全部楼层

$f(x)$

回复 打印

使用道具 举报

wanren 发表于 2021-8-26 21:51 | 显示全部楼层


superplot
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系我们|手机版|欧卡2中国 ( 湘ICP备11020288号-1 )

GMT+8, 2024-3-29 04:27 , Processed in 0.046566 second(s), 9 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表