欧卡2中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

需要三步,才能开始

只需两步,慢速开始

查看: 12512|回复: 3
收起左侧

【超级图表】使用手册

[复制链接]
知行 发表于 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
waylee 发表于 2024-11-6 00:44 | 显示全部楼层
Created with Raphaël 2.2.0开始初始化 i = 2,遍历数组保存当前元素为 key (key = array<i>)设置 j = i - 1j >= 1 且 array[j].score > key.score?将 array[j] 向右移动 (array[j + 1] = array[j])更新 j = j - 1,继续检查将 key 插入到 array[j + 1]更新 i,继续遍历是否遍历完整个数组?排序完成,输出结果结束yesnoyesno
[/flow]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-4-14 16:35 , Processed in 0.107347 second(s), 7 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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