标签: visualization

如何使用Python中的Matplotlib和数据列表绘制直方图?

我试图使用该matplotlib.hist()函数绘制直方图,但我不知道该怎么做.

我有一份清单

probability = [0.3602150537634409, 0.42028985507246375, 
  0.373117033603708, 0.36813186813186816, 0.32517482517482516, 
  0.4175257731958763, 0.41025641025641024, 0.39408866995073893, 
  0.4143222506393862, 0.34, 0.391025641025641, 0.3130841121495327, 
  0.35398230088495575]
Run Code Online (Sandbox Code Playgroud)

和名单(字符串)列表.

如何将概率作为每个条形的y值和名称作为x值?

python visualization data-visualization matplotlib

73
推荐指数
5
解决办法
26万
查看次数

时间线可视化的SIMILE时间线的替代方案?

所以我玩SIMILE Timeline得很开心,但遗憾的是,它似乎已经被抛弃了(最近一次关闭的票据2009年5月)并且内存泄漏很多,特别是当你动态加载和卸载事件时(尤其是在我的情况下是真的).

我是JavaScript的新手,因此调试这些泄漏会变得有点复杂.在我首先用一种我不理解的语言或我从未看过的代码库来解决问题之前,我想知道是否有任何东西与我可以通过时间轴获得的功能集相比较:

  1. 一个频段上的多个事件
    • 而不是拥有10,100,1000 数据,尽可能使用可用空间在一行上容纳多个事件
  2. 滚动
  3. CSS样式到特定事件
    • 如果需要,我可以为每个事件指定特定的图标,字体等.这非常适合突出显示错误事件或有趣事件
  4. 过滤/搜索/突出
  5. 突出一段时间或时间点
    • 这将是一个显示"现在"时刻的垂直波段,或一个涵盖时间段开始和结束时间的波段

我知道很多这些功能可能会被放入诸如FlotHighCharts之类的东西中,但是这些东西在我的时间轴中可以免费使用,所以我在权衡是否更容易修复内存泄漏或在某些没有它的库上推出3-4个功能.我的直觉说"修复泄漏,它更容易",但我想知道是否有人可以向我展示一些可能90%的方式,并且进入其他10%的进入门槛较低.

javascript timeline visualization simile

67
推荐指数
3
解决办法
4万
查看次数

Matplotlib - 标记每个bin

我目前正在使用Matplotlib来创建直方图:

在此输入图像描述

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as pyplot
...
fig = pyplot.figure()
ax = fig.add_subplot(1,1,1,)
n, bins, patches = ax.hist(measurements, bins=50, range=(graph_minimum, graph_maximum), histtype='bar')

#ax.set_xticklabels([n], rotation='vertical')

for patch in patches:
    patch.set_facecolor('r')

pyplot.title('Spam and Ham')
pyplot.xlabel('Time (in seconds)')
pyplot.ylabel('Bits of Ham')
pyplot.savefig(output_filename)
Run Code Online (Sandbox Code Playgroud)

我想让x轴标签更有意义.

首先,这里的x轴刻度似乎限于五个刻度.无论我做什么,我似乎无法改变这一点 - 即使我添加更多xticklabels,它只使用前五个.我不确定Matplotlib如何计算这个,但我认为它是从范围/数据中自动计算的?

有没有什么办法可以提高x-tick标签的分辨率 - 甚至可以提高每个条形码/ bin 的分辨率

(理想情况下,我也希望以微秒/毫秒重新格式化秒数,但这是另一天的问题).

其次,我想要标记每个单独的条形图 - 包含该条形图中的实际数字,以及所有条形图总数的百分比.

最终输出可能如下所示:

在此输入图像描述

Matplotlib有可能吗?

干杯,维克多

python graphing visualization matplotlib histogram

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

如何用d3将圆圈带到前面?

首先,我使用d3.js在数组中显示不同大小的圆圈.鼠标悬停时,我希望将鼠标悬空变大,这是我可以做的,但我不知道如何把它带到前面.目前,一旦渲染,它就隐藏在多个其他圈子后面.我怎样才能解决这个问题?

这是一个代码示例:

   .on("mouseover", function() { 
    d3.select(this).attr("r", function(d) { return 100; })
  })
Run Code Online (Sandbox Code Playgroud)

我尝试使用排序和顺序方法,但它们不起作用.我很确定我没有正确地做到这一点.有什么想法吗?

javascript visualization d3.js

63
推荐指数
4
解决办法
4万
查看次数

C/C++源代码可视化?

基本上我想要生成源代码可视化的工具,如:

  • 函数调用图
  • 依赖图
  • ...

c c++ visualization

62
推荐指数
4
解决办法
5万
查看次数

什么是最快,最纯粹的Javascript,Graph可视化工具包?

这个问题是关于绘制图形(由顶点和边缘组成的图形)的工具包,而不是通用图形.

该工具必须能够获得一组顶点和边,计算它们的布局,并使用与HTML5兼容的canvas标签或SVG显示它们.

基于Flash的工具和Java小程序已经出局.

要作为统一的基准测试,请测量并报告工具包布局和绘制每个节点有100个顶点和5个边缘的Barabasi-Albert图形所需的时间.

这个python lybrary展示了如何生成它并将其导出为多种格式:

http://networkx.lanl.gov/tutorial/tutorial.html#graph-generators-and-graph-operations

请注明浏览器和CPU.

javascript html5 visualization graph

60
推荐指数
4
解决办法
4万
查看次数

R + ggplot:包含事件的时间序列

我是R/ggplot的新手.我想创建一个连续变量时间序列的geom_line图,然后添加一个由事件组成的图层.连续变量及其时间戳存储在一个data.frame中,事件及其时间戳存储在另一个data.frame中.

真正想做的是像finance.google.com上的图表.在那些,时间序列是股票价格,并有"标志"来表示新闻事件.我实际上并没有绘制财务资料,但图表的类型是相似的.我试图绘制日志文件数据的可视化.这是我的意思的一个例子......

谷歌图表与事件

如果可取(?),我想为每一层使用单独的data.frames(一个用于连续变量观察,另一个用于事件).

经过一些试验和错误,这是我能得到的尽可能接近.在这里,我使用ggplot附带的数据集中的示例数据."经济学"包含一些我想绘制的时间序列数据,"总统"包含一些事件(总统选举).

library(ggplot2)
data(presidential)
data(economics)

presidential <- presidential[-(1:3),]
yrng <- range(economics$unemploy)
ymin <- yrng[1]
ymax <- yrng[1] + 0.1*(yrng[2]-yrng[1])

p2 <- ggplot()
p2 <- p2 + geom_line(mapping=aes(x=date, y=unemploy), data=economics , size=3, alpha=0.5) 
p2 <- p2 + scale_x_date("time") +  scale_y_continuous(name="unemployed [1000's]")
p2 <- p2 + geom_segment(mapping=aes(x=start,y=ymin, xend=start, yend=ymax, colour=name), data=presidential, size=2, alpha=0.5)
p2 <- p2 + geom_point(mapping=aes(x=start,y=ymax, colour=name ), data=presidential, size=3) 
p2 <- p2 + geom_text(mapping=aes(x=start, y=ymax, label=name, angle=20, hjust=-0.1, vjust=0.1),size=6, data=presidential)
p2
Run Code Online (Sandbox Code Playgroud)

我的尝试

问题:

  • 这对于非常稀疏的事件是可以的,但是如果它们有一个集群(通常发生在日志文件中),它就会变得混乱.是否有一些技术可以用来整齐地显示在短时间间隔内发生的一系列事件?我在考虑使用position_jitter,但这对我来说真的很难.谷歌图表将这些事件"标志"叠加在一起,如果它们有很多的话.

  • 我实际上不喜欢以与连续测量显示相同的比例粘贴事件数据.我宁愿把它放在facet_grid中.问题是所有facet都必须来自相同的data.frame(不确定是否为真).如果是这样,那似乎也不理想(或者我只是想避免使用重塑?)

graphing visualization r ggplot2

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

免费的java数据可视化库?

我正在寻找一个免费的Java库来可视化一些数据.我想做类似以下两个图像的事情.有可能吗?我首先想到的是prefuse,但是自2007年以来这还没有开发出来.那么任何其他的库?

在此输入图像描述

在此输入图像描述

java visualization

56
推荐指数
4
解决办法
3万
查看次数

如何在R中可视化大型网络?

网络可视化在实践中在科学中变得普遍.但随着网络规模的扩大,常见的可视化变得不那么有用.有太多的节点/顶点和链接/边缘.通常,可视化工作最终会产生"毛球".

已经提出了一些新方法来克服这个问题,例如:

我相信还有更多方法.因此,我的问题是: 如何克服毛球问题,即如何通过使用R来可视化大型网络?

以下是一些模拟示例网络的代码:

# Load packages
lapply(c("devtools", "sna", "intergraph", "igraph", "network"), install.packages)
library(devtools)
devtools::install_github(repo="ggally", username="ggobi")
lapply(c("sna", "intergraph", "GGally", "igraph", "network"), 
       require, character.only=T)

# Set up data
set.seed(123)
g <- barabasi.game(1000)

# Plot data
g.plot <- ggnet(g, mode = "fruchtermanreingold")
g.plot
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这个问题与可视化GraphViz太大的无向图有关 吗?.但是,在这里我不是寻找一般的软件推荐,而是寻找具体的例子(使用上面提供的数据)哪些技术有助于通过使用R来实现对大型网络的良好可视化(与此线程中的示例相当:R:Scatterplot with太多分了).

visualization r graph social-networking graph-visualization

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

如何访问与D3 SVG对象相关的DOM元素?

我试图通过试验他们的一个基本气泡图来学习D3 .第一项任务:弄清楚如何拖动气泡并让它在被拖动时成为最顶层的物体.(问题是让D3的对象模型映射到DOM上,但我会到达那里......)

要拖动它,我们可以使用它们提供的代码简单地调用d3的拖动行为:

var drag = d3.behavior.drag()
    .on("dragstart", dragstart)
    .on("drag", dragmove)
    .on("dragend", dragend);
Run Code Online (Sandbox Code Playgroud)

效果很好.拖得好.现在,我们如何让它成为最顶级的项目?在这里搜索"svg z-index",很快就会发现改变索引的唯一方法是在DOM中进一步向下移动一个对象.好.它们并不容易,因为单个气泡没有ID,但是在控制台上乱搞,我们可以找到其中一个气泡对象:

$("text:contains('TimeScale')").parent()
Run Code Online (Sandbox Code Playgroud)

我们可以将它移动到包含svg元素的末尾:

.appendTo('svg')
Run Code Online (Sandbox Code Playgroud)

执行此操作后拖动它,它是最顶层的项目.到目前为止,如果你完全在DOM中工作那么好.

但是:我真正想做的是在拖动给定对象/气泡时自动发生这种情况.D3提供了一个模型dragstart()dragend()函数,它们允许我们在拖动过程中嵌入一个语句来完成我们想要的操作.D3提供的d3.select(this)语法允许我们访问您当前正在拖动的对象/气泡的d3对象表示.但是我如何干净地将那个大型数组转换为对我可以与之交互的DOM元素的引用 - 例如 - 将其移动到svg容器的末尾,或者在DOM中执行其他引用,例如表单提交?

svg dom visualization data-visualization d3.js

55
推荐指数
3
解决办法
6万
查看次数