思源 Chart 萌新使用指南

基础教程

可参考: 思源笔记图表 ECharts 小白教程

但由于该教程中的“百度图说”已经下线了,可以使用 https://www.lddgo.net/base/class?classID=6 这个网站代替。

进阶教程

如果 https://www.lddgo.net/base/class?classID=6 这个网站的图例无法满足你的需求,也可以参考官网示例

官网中,复制 js 示例代码中的,option 里的内容即可,可根据自己的实际情况修改数据,如图。

image.png

如果,有些复杂的示例中有 js 代码的,可以在最底部添加 console.log(option),然后打开浏览器开发者工具,然后打开控制台(windows: Ctrl+Shift+I;macOS: Cmd+Option+I),复制刚才打印的 option 对象,然后粘贴到思源 chart 块中即可。

image.png

当然,这种方法还是太过麻烦,还有一种更方便的方法,可以在 chart 块中先写个立即函数,然后返回 option 变量,然后把 echarts 官网的代码直接粘贴到立即函数中即可。

这样,还有个好处,还可以通过思源 api 动态生成 option 的数据。可参考: 思源笔记折腾记录 echarts- 热力图 -2023 年文档统计

立即函数如下:

(() => {
    //代码粘贴到这里
    return option;
})()

注意 ,立即函数的最后面不要加 ; 号,会报错,因为这个立即函数在一个函数参数里。

这里还有一些其他的示例可供参考:https://juejin.cn/post/7078834647005822983

当然,如果想个性化和支持更多功能,还推荐认真看看官方的教程:https://echarts.apache.org/handbook/zh/how-to/chart-types/bar/basic-bar

源码分析

基本上,以上掌握了就能很好的利用 echarts 了。

但你可能遇到一些问题,不知道怎么排查,或者你想看看官方的源码是怎么实现的。

可打开思源控制台(windows: Ctrl+Shift+I;macOS: Cmd+Option+I),然后打开源代码选项卡,然后找到 main.js 文件,然后搜索,一共出现 2 个,找到第 2 个即可,如图。

image.png

由图可知,chart 块里输入的数据来自 l 变量,而 l 变量的值来自块元素的 data-content 属性。

如果有问题,也可以在这里加断点调试。

当然,如果想看未压缩的源码可以到这里查看:https://github.com/siyuan-note/siyuan/blob/687421fe62beb6bddd46c69a263c485bb1fe6619/app/src/protyle/render/chartRender.ts#L45

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    23015 引用 • 92579 回帖
  • 教程
    143 引用 • 611 回帖 • 8 关注
  • Chart
    4 引用 • 3 回帖 • 1 关注
3 操作
wilsons 在 2024-12-18 18:40:00 更新了该帖
wilsons 在 2024-07-25 20:27:04 更新了该帖
wilsons 在 2024-07-25 19:45:34 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • sunrain

    萌新友好贴,支持!

  • 其他回帖
  • wilsons

    当然可以,文档中不是提到可以用立即函数返回数据吗

    那这个立即函数里自然可以调用 api,查询数据库等操作了。

  • 谢谢!能不能直接链接数据库的数据, 不是人工输入 x,y 数据?

    1 回复
wilsons
人生最大的敌人是自己,战胜自己,才能超越一切。