标签: visualization

git DAG的增量线性化

我是GitX的作者.GitX的一个功能是分支的可视化,这可以在这里看到.

此可视化目前通过读取以正确顺序从git发出的提交来完成.对于每次提交,父母都是已知的,因此以正确的方式构建通道相当容易.

我想通过使用自己的提交池并自己线性化提交来加快这个过程.这允许我重用现有的已加载提交并允许git更快地发出提交,因为它不必以正确的顺序发出它们.

但是,我不确定使用什么算法来实现这一目标.重要的是,构建是增量的,因为提交的加载可能需要很长时间(100,000次提交> 5秒,应该全部显示).

Gitk已经以同样的方式,并有一个补丁在这里,显示它是如何实现的,但我的TCL技能薄弱,补丁是不是很详尽的注释和有点难以遵循.

我也希望这个算法有效,因为它必须处理数十万次提交.它也必须显示在表中,因此访问特定行很快很重要.

我将描述我到目前为止的输入,我想要的输出和一些观察.

输入:

  • 我有一个哈希表形式的当前提交池,它将commit id映射到提交对象.此池不必完整(必须提交所有提交)
  • 我在git的新提交中有一个单独的线程加载,每次加载新提交时都可以调用一个回调.提交没有保证顺序,但在大多数情况下,下一次提交是前一次提交的父级.
  • 提交对象具有自己的修订版ID以及其所有父项的修订版ID
  • 我有一个应该列出的分支头列表.也就是说,不应该显示DAG的单个"顶部".也不必是单个图根.

输出:

  • 我需要按拓扑顺序线性化这些提交.也就是说,在列出其父项后,无法列出提交.
  • 我还需要在上面的屏幕截图中看到的"分支线".这些可能需要预先计算,因为大多数都依赖于他们的孩子.

几点评论:

  • 有必要重新定位提交列表.例如,我们可能必须提交不相关的(分支头),直到提交显示使一个头成为另一个头的祖先.
  • 必须显示多个分支提示
  • 这个过程是增量的很重要,因此在数据仍在加载时至少可以获得部分视图.这意味着必须在中途插入新数据并且必须重新调整分支线.

git visualization objective-c directed-acyclic-graphs

12
推荐指数
1
解决办法
1242
查看次数

方法调用链的Eclipse可视化

我正在寻找一个有用的eclipse插件,可以:

  • 可视化方法链调用(Java)
  • 可视化数据类型层次结构(Java)

你能推荐一下吗?

java visualization eclipse-plugin

12
推荐指数
1
解决办法
1万
查看次数

用于可视化100k顶点和1M边缘的Python工具?

我希望可视化数据,希望能使它具有互动性.现在我正在使用NetworkX和Matplotlib,当我试图"绘制"图形时,它最大化了我的8gb.我不知道有哪些选项和技术可用于处理如此大的数据集**.如果有人能指出我正确的方向,那就太好了.我也有一个支持CUDA的GFX卡,如果它可以使用.

现在,我正在考虑仅绘制连接最多的节点,比如说顶部5%的顶点边缘最多,然后在用户缩放或点击时填充连接较少的节点.

python visualization wxpython graph

12
推荐指数
1
解决办法
3155
查看次数

如何可视化分层数据?

我有一些如下数据:

A A1 12
A A2 23
A A3 AA1 1
A A3 AA2 2
B B1 2
B B2 1
Run Code Online (Sandbox Code Playgroud)

有没有办法在ggplot中可视化这些信息?我正在寻找这样的东西:

   |--A1---12
   |--A2---23
A--|--A3--AA1--1
      |---AA2--2

B--|--B1---2
   |--B2---1
Run Code Online (Sandbox Code Playgroud)

有什么建议?

visualization r graph hierarchical-data ggplot2

12
推荐指数
1
解决办法
3114
查看次数

用于动画地图可视化的Python库

我想在地理地图上可视化轨迹.我不需要数千层,3D和其他GIS功能.我只想(latitude, longitude, altitude, time)尽可能简单地在地图背景上可视化我的元组.动画也应该受到支持.

谁能推荐好的Python库?

python maps plot visualization geolocation

12
推荐指数
2
解决办法
2万
查看次数

在VS2008中可视化树

我一直在为autoexp.dat添加一些类型的可视化工具.即使是每个人都回顾的博客(甚至是微软的家伙!),有时也是一场斗争.

但我完全被#tree可视化工具所困扰.首先,博客文章似乎在其描述中充满漏洞(并且没有其他材料我能够找到地址 - 但其他人已经明确地使其工作).特别是似乎有一些神奇的案例,它知道取消引用一个指针 - 但我无法确定我是否反过来设计了意图.当你使用$ c和$ e时,似乎也存在一些模糊性.AFAICS它们似乎是可以互换的 - 也许两者都可以作为可读性的辅助手段?或者它们真的意味着不同的东西(例如,博客使用$ e,其中VS2008附带的stl可视化器使用$ c).

但真正缺少的是对它们如何融合在一起的解释.我原以为它会遵循这个过程:

  1. 应用"head"规则到达起始节点(通过指针)
  2. 将deref规则(末尾的位)应用于解除引用的当前节点以获取可视化的值.
  3. 将左右规则应用于解除引用的当前节点以分别到达左节点和右节点(通过指针 - 使用null作为终止符,除非指定了跳过规则).
  4. 转到(2)直到访问了所有节点.

显然有一个我左右导航的算法,我已经掩盖了.那不是太重要.更重要的是在每个阶段和解除引用时都会考虑哪些值.

这似乎是我能想到的唯一适合我见过的例子的过程.但我一直无法使用我们的树实现.我只是得到(错误)应该显示#tree子项(我为每个节点得到一个(错误),所以我假设正确捕获了大小).我已经尝试过我能想到的各种变化 - 最多次!

令我困惑的另一件事是,我见过的许多例子,包括捆绑的stl,从头部导航到父级(或类似的),并跳过头节点.他们为什么这样做?

这是我正在使用的可视化工具(我尝试过的其中一种形式 - 名称已更改为保护...公司):

MyTree<*,*,*>{
    children(
        #(
            [raw members]: [$c,!],
            #tree
            (
                head : $c.m_root.m_p,
                size : $c.m_size,
                left : left.m_p,
                right : right.m_p
            ) : $e.value
        )
    )
}
Run Code Online (Sandbox Code Playgroud)

这里是我的树类的一些伪代码:

MyTree:
    Ptr<Note> m_root
    int m_size

Node:
    ValueT value
    Ptr<Node> left
    Ptr<Node> right
Run Code Online (Sandbox Code Playgroud)

...其中Ptr <>是一个智能指针,将原始指针保存在m_p中.

任何帮助将不胜感激.

c++ tree visualization visual-studio-2008

12
推荐指数
1
解决办法
346
查看次数

Matlab:用透明背景保存图形

我有一个情节,并通过以下方式将背景设置为透明:

set(gcf, 'Color', 'None');
set(gca, 'Color', 'None');
Run Code Online (Sandbox Code Playgroud)

当我尝试保存图像(来自观看者)时,我保存为.png,但它以白色背景保存.如何用透明背景保存?

谢谢

matlab visualization image

12
推荐指数
1
解决办法
3万
查看次数

我可以为散热图绘制颜色条吗?

散景是否有一种简单的方法来绘制热图的颜色条?

在这个例子中,它将是一个条带,说明颜色如何对应于值.

在matlab中,它被称为'colorbar',看起来像这样: 在此输入图像描述

visualization heatmap colorbar bokeh

12
推荐指数
3
解决办法
6792
查看次数

禁用ggplots的cowplot默认值

ggplot2附加软件包,cowplot具有用来绘制多条曲线称为一个不错的功能plot_grid().这是plot_grid()在行动:

library(ggplot2); library(cowplot)

plot_a <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
plot_b <- ggplot(mtcars, aes(mpg, disp)) + geom_point()

plot_grid(plot_a, plot_b, labels = c("A", "B"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但请注意加载如何cowplot更改默认的绘图样式.如何加载cowplot包以便我可以使用该plot_grid()功能,但也禁用cowplot强制执行的默认打印样式?

plot visualization r ggplot2 cowplot

12
推荐指数
1
解决办法
2441
查看次数

d3.js检查/计数系列图表

我正在开发一个使用foursquare数据的应用程序. 在此输入图像描述

//这是有一些深入研究的系列图表 - 但是这里仍然存在一些错误.

所以我们有一批数据 - 健康与美容,餐厅,咖啡厅,公共房屋. - 会有COUNT个 - 以及结帐信息的摘要.所以我希望这个图表能够显示场地的数量,但也表明它们是多么流行......所以例如酒吧的数量可能会更小,但是因为它们更受欢迎,所以签到的数量更多.所以在那种情况下想要反转圆圈的颜色.

当前的代码尝试存在一些错误.

  • 圆圈/圆圈间距的交换会导致黑色路径中的撕裂和奇怪的行为
  • 我希望在蓝色圆圈下面有一条黑线,但是在蓝色圆圈内部显示一条裁剪的圆形路径橙色线 - 这是一种掩蔽能力.

_latest jsfiddle

阶段1

使用"V"而不是"L"但暂时无法使其正常工作.

第二阶段 我认为它的工作更加一致但存在一些问题.此外,我不确定圆圈的数据和缩放.(我添加了额外的标签,以便可以看到圆圈的价值)

第3阶段

改变了getCircleSize,尽管我认为更一致的事情就是这样 layerSet.push(parseInt(getPercentage(layerArray[i], meansPerGroup[0])*60, 10));

所以这里第一步首先按大小顺序绘制圆圈...所以在这种情况下通过计数..但也许这里有一个错误反转颜色来表示签到计数 - 所以也许我们需要按计数排序,检查顺序 - 这样第一个要绘制的圆正确遵循.

  // Create Circles
  function setCircles(items) {
    // sort elements in order to draw them by size
    items.sort(function(a, b) {
      return parseFloat(b.value) - parseFloat(a.value);
    });

    var circlelayer = svg.append("g")
      .attr("class", "circlelayer");

    var circle = circlelayer.selectAll("circle")
      .data(items);

    circle.enter().append("circle")
      .attr("class", function(d, i) {
        if (d.l == 0) {
          return "blue";
        } …
Run Code Online (Sandbox Code Playgroud)

javascript visualization d3.js

12
推荐指数
1
解决办法
1037
查看次数