10 个版本

0.8.1 2021年1月6日
0.8.0 2021年1月6日
0.2.1 2020年12月23日
0.1.6 2020年7月14日
0.1.3 2020年4月16日

#143可视化

每月下载量 36 次

AGPL-3.0

7MB
292

ChordPRO

和弦 PRO 发布

和弦 PRO 是功能齐全的和弦可视化 API,可生成美丽的交互式可视化,例如 Reddit 首页上的那些。

  • 生成美丽的交互式和弦图。
  • 自定义颜色和字体大小。
  • 访问分割模式,使您的图表有两侧。
  • 悬停时添加图像和文本,
  • 访问更精细的定制,包括 HTML 注入。
  • 允许商业使用,无需开源要求。
  • 目前支持 Python、JavaScript 和 Rust,未来还将支持更多(接受请求)。

在此获取!

变更日志

  • 2020年12月23日 - Chord PRO 现在支持 reverse_gradients

reverse_gradients

  • 2020年12月2日 - Chord PRO 现在具有使用 conjunction 参数的 [更好的文本定制] 支持。

  • 2020年11月21日 - Chord PRO 现在具有对不对称和弦图 更好的支持

  • 2020年11月3日 - Chord PRO 现在支持没有关系的节点。

  • 2020年10月26日 - Chord PRO 现在支持当同一页面上出现多个和弦图时下载到图片。

  • 2020年10月3日 - Chord PRO 现在支持可视化 出现以及共现

  • 2020年8月29日 - Chord PRO 现在支持启用“下载到图片”按钮。

  • 2020年8月16日 - Chord PRO 现在支持半径缩放和二分标题。

  • 2020年8月13日 - Chord PRO 现在支持弧度编号。

  • 2020年7月23日 - Chord PRO 现在支持图形标题。

  • 2020年7月20日 - Chord PRO 现在可以通过输入您的 许可证密钥 启用。您还可以覆盖弹出窗口中使用的 verb

  • 2020年7月14日 - Chord PRO 现在可以通过输入您的 许可证密钥 启用。

  • 2020年6月29日 - 对提示框的优化和错误修复大幅提高了可视化(重建您的和弦图 以利用此更改)的交互性能。

  • 2020年5月22日 - 优化和错误修复大幅提高了可视化(重建您的和弦图 以利用此更改)的交互性能。

  • 2020年5月21日 - 请更新到最新的 chord 版本。已经引入了向后兼容性,因此从本版本开始,新版本不会破坏旧版本!

Example Image

简介

在和弦图(或径向网络)中,实体以半径上的段的形式排列,它们之间的关系通过连接它们的弧来可视化。段的大小表示数值比例,而弧的大小表示关系的意义1

和弦图在尝试传达不同实体之间的关系时非常有用,并且它们可以很美,引人注目。

Chord Crate

我找不到任何用于绘制和弦图的Rust crate,所以我从Python迁移了自己的项目到Rust。

您可以从 crates.io 或从 GitHub仓库 获取该软件包。使用您处理后的数据,您只需一行代码就可以绘制出美丽的图形,Chord{ matrix : matrix, names : names, .. Chord::default() }.show()

主要支持 Jupyter Lab(不是较旧的 Jupyter Notebook)。

安装

可在 crates.io 上找到。

:dep chord = {Version = "0.2.1"}
use chord::{Chord, Plot};

示例

您可以在本页上的实际交互示例 这里 查看。以下示例是截图。

数据集

本节的重点将是演示 chord 包。为了简单起见,我们将使用说明同一部电影中电影类型共现的合成数据。

let matrix: Vec<Vec<f64>> = vec![
    vec![0., 5., 6., 4., 7., 4.],
    vec![5., 0., 5., 4., 6., 5.],
    vec![6., 5., 0., 4., 5., 5.],
    vec![4., 4., 4., 0., 5., 5.],
    vec![7., 6., 5., 5., 0., 4.],
    vec![4., 5., 5., 5., 4., 0.],
];

let names: Vec<String> = vec![
    "Action",
    "Adventure",
    "Comedy",
    "Drama",
    "Fantasy",
    "Thriller",
]
.into_iter()
.map(String::from)
.collect();

默认设置

让我们看看当我们调用Chord的默认值时,show方法会产生什么效果。

Chord {
    matrix: matrix.clone(),
    names: names.clone(),
    ..Chord::default()
}
.show();

Example Image

您还可以将其保存为HTML文件。

Chord {
    matrix: matrix.clone(),
    names: names.clone(),
    ..Chord::default()
}
.to_html();

不同颜色

默认值很棒,但如果我们想要不同的颜色怎么办?您可以从d3-scale-chromatic中传递几乎所有内容,或者您可以传递一个十六进制颜色代码列表。

Chord {
    matrix: matrix.clone(),
    names: names.clone(),
    colors: "d3.schemeSet2".to_string(),
    ..Chord::default()
}
.show();

Example Image

Chord {
    matrix: matrix.clone(),
    names: names.clone(),
    colors: format!("d3.schemeGnBu[{:?}]",names.len()).to_string(),
    ..Chord::default()
}
.show();

Example Image

Chord {
    matrix: matrix.clone(),
    names: names.clone(),
    colors: "d3.schemeSet3".to_string(),
    ..Chord::default()
}
.show();

Example Image

Chord {
    matrix: matrix.clone(),
    names: names.clone(),
    colors: format!("d3.schemePuRd[{:?}]",names.len()).to_string(),
    ..Chord::default()
}
.show();

Example Image

Chord {
    matrix: matrix.clone(),
    names: names.clone(),
    colors: format!("d3.schemeYlGnBu[{:?}]",names.len()).to_string(),
    ..Chord::default()
}
.show();

Example Image

let hex_colours : Vec<String> = vec!["#222222", "#333333", "#4c4c4c", "#666666", "#848484", "#9a9a9a"].into_iter()
.map(String::from)
.collect();

Chord {
    matrix: matrix.clone(),
    names: names.clone(),
    colors: format!("{:?}",hex_colours),
    ..Chord::default()
}
.show();

Example Image

标签样式

我们可以禁用换行标签,甚至更改颜色。

Chord {
    matrix: matrix.clone(),
    names: names.clone(),
    wrap_labels: false,
    label_color:"#4c40bf".to_string(),
    ..Chord::default()
}
.show();

Example Image

不透明度

我们还可以更改关系的默认不透明度。

Chord {
    matrix: matrix.clone(),
    names: names.clone(),
    opacity: 0.1,
    ..Chord::default()
}
.show();

Example Image

图表大小

我们可以通过指定宽度来更改最大图表大小。

Chord {
    matrix: matrix.clone(),
    names: names.clone(),
    width: 400.0,
    ..Chord::default()
}
.show()

  1. Tintarev, N., Rostami, S., & Smyth, B. (2018, April). Knowing the unknown: visualising consumption blind-spots in recommender systems. In Proceedings of the 33rd Annual ACM Symposium on Applied Computing (pp. 1396-1399). 

数据和模板

Chord FREE软件包

当未指定用户名和许可证,或者它们都设置为"free"时,chord软件包会切换到FREE模式。这将禁用所有PRO功能的使用。

这使用的是托管在DataCrayon.com(AWS托管)服务器上的Chord FREE API服务来生成您的可视化。

Chord FREE使用AGPL-3.0许可证

当指定用户名和许可证时,chord软件包会切换到PRO模式。这启用了所有PRO功能的使用。

这使用的是托管在DataCrayon.com(AWS托管)服务器上的Chord PRO API服务来生成您的可视化。

Example Image

依赖关系