我想自动放置100-200个泡泡标签,以满足以下要求:
这有什么有用的库/算法吗?(最好是JavaScript或PHP)
(图像中的标签位置不符合这些要求)

我有一个大的节点和有向边的图.此外,我还为每个节点分配了一个额外的值列表.
我现在想根据节点值更改每个节点的颜色.例如,绘制具有非常高的红色值的节点和具有低值蓝色的节点(类似于热图).这在某种程度上很容易实现吗?如果没有使用networkx,我也可以使用Python中的其他库.
我注意到这里Box和胡须策划了这个电话:
p + geom_boxplot(aes(fill = factor(cyl)))
Run Code Online (Sandbox Code Playgroud)
为箱形图填充生成明亮的红色/绿色/蓝色,同时:
p + geom_boxplot(aes(fill = factor(vs)))
Run Code Online (Sandbox Code Playgroud)
产生明显的淡绿色/红色.在我的数据中,我得到了第二组颜色,但是想要第一组颜色(比如
p + geom_boxplot(aes(fill = factor(cyl)))
Run Code Online (Sandbox Code Playgroud)
什么控制ggplot使用哪种颜色,你如何改变它?
谢谢
我在python和networkx中遇到大图形可视化问题.图形希望可视化是有向的,并且边缘和顶点集大小为215,000.从文档(在首页链接)可以清楚地看出,networkx支持使用matplotlib和GraphViz进行绘图.在matplotlib和networkx中,绘图完成如下:
import
networkx as nx
import matplotlib.pyplot as plt
#Let g be a graph that I created
nx.draw(g)
Run Code Online (Sandbox Code Playgroud)
之后我会收到一个内存错误nx.draw(g),之后您通常会执行plt.show()或尝试[some_function]以高效等格式保存文件.
接下来我尝试了GraphViz.从维基百科页面,该dot格式用于有向图,我创建了一个点文件:
nx.write_dot(g, "g.dot")
Run Code Online (Sandbox Code Playgroud)
这很好用,我在当前目录中有一个12兆字节的点文件.接下来我运行dot程序(graphviz的一部分来创建postscript文件):
dot -Tps g.dot -o g.ps
Run Code Online (Sandbox Code Playgroud)
这会减慢我的电脑速度,运行几分钟然后显示Killed在终端中.因此它永远无法执行......在阅读graphviz的文档时,似乎只有无向图才能支持大图形可视化.
问题:有了这两个不成功的尝试,任何人都可以告诉我如何使用python和networkx可视化我的大图,大约215,000个顶点和215,000个边缘?我怀疑与Graphviz一样,我必须输出一个中间格式(虽然这不应该那么难,它不会像内置函数那么容易)然后使用另一个工具来读取中间格式然后输出一个可视化.
所以,我正在寻找以下内容:
如果您需要更多信息,请告诉我们!
我正在尝试使用Python中的scikit-learn设计一个简单的决策树(我在Windows操作系统上使用Anaconda的Ipython Notebook和Python 2.7.3),并将其可视化如下:
from pandas import read_csv, DataFrame
from sklearn import tree
from os import system
data = read_csv('D:/training.csv')
Y = data.Y
X = data.ix[:,"X0":"X33"]
dtree = tree.DecisionTreeClassifier(criterion = "entropy")
dtree = dtree.fit(X, Y)
dotfile = open("D:/dtree2.dot", 'w')
dotfile = tree.export_graphviz(dtree, out_file = dotfile, feature_names = X.columns)
dotfile.close()
system("dot -Tpng D:.dot -o D:/dtree2.png")
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
AttributeError: 'NoneType' object has no attribute 'close'
Run Code Online (Sandbox Code Playgroud)
我使用以下博客文章作为参考:Blogpost链接
以下stackoverflow问题对我来说似乎也不起作用:问题
有人可以帮助我如何在scikit-learn中可视化决策树吗?
我正在尝试使用Graphviz(符合neato)创建图形,我想将节点放在特定位置.为此,我为所有边指定了精确的边长.但是,我不希望所有边缘在最终图像中可见.
你知道隐藏边缘的方法吗?我应该提一下,我尝试将边缘着色为白色,但是发生的是我在图形节点上画了白线 - 它不是很美观......
是否有用于绘制类似于MATLAB,scilab或matplotlib的绘图的Haskell库?它们都有非常简单的接口,就像状态机一样工作:
plot(xs, ys)
show() -- opens window with plot
Run Code Online (Sandbox Code Playgroud)
在窗口中显示绘图并能够将它们写入磁盘会很好.
[ 更新:虽然我已接受答案,但如果您有其他可视化想法(无论是R还是其他语言/程序),请添加其他答案.关于分类数据分析的文本似乎没有太多关于可视化纵向数据的内容,而关于纵向数据分析的文本似乎没有太多关于在类别成员资格中随时间变化内部主体变化的可视化.对这个问题有更多的答案将使它成为一个在标准参考文献中没有得到太多报道的问题的更好资源.
一位同事刚给我一个纵向分类数据集,我试图弄清楚如何捕捉可视化中的纵向方面.我在这里发帖,因为我想在R中这样做,但是请告诉我是否有必要交叉发布到Cross-Validated,因为通常不鼓励交叉发布.
快速背景:数据跟踪学生通过学术咨询计划从学期到学期的学术地位.数据为长格式,有五个变量:"id","同类","术语","站立"和"termGPA".前两个确定学生和他们在咨询计划中的期限.最后三个是学生的学术地位和GPA记录的条款.我在下面粘贴了一些示例数据dput.
我创建了一个马赛克图(见下文),通过群组,站立和术语对学生进行分组.这表明在每个学期中,每个学术类别中的学生比例是多少.但这并没有捕捉到纵向方面 - 随着时间的推移追踪个别学生的事实.我想跟踪具有特定学术地位的学生群体随着时间的推移而走的路.
例如:在2009年秋季("F09")中具有"AP"(学术试用期)的学生中,未来的术语中仍然是AP的哪一部分,以及进入其他类别的部分(例如,GS,"良好信誉")?自进入咨询计划以来,类别之间的移动与时间之间是否存在差异?
我无法弄清楚如何在R图形中捕捉这个纵向方面.该vcd软件包具有可视化分类数据的功能,但似乎不能解决纵向分类数据.是否存在可视化纵向分类数据的"标准"方法?R是否有为此设计的包装?长格式适合这种类型的数据,还是宽屏格式会更好?
我希望有解决这一特定问题的建议以及文章,书籍等的建议,以便更多地了解纵向分类数据的可视化.
这是我用来制作马赛克图的代码.该代码使用下面列出的数据dput.
library(RColorBrewer)
# create a table object for plotting
df1.tab = table(df1$cohort, df1$term, df1$standing,
dnn=c("Cohort\nAcademic Standing", "Term", "Standing"))
# create a mosaic plot
plot(df1.tab, las=1, dir=c("h","v","h"),
col=brewer.pal(8,"Dark2"),
main="Fall 2009 and Fall 2010 Cohorts")
Run Code Online (Sandbox Code Playgroud)
这是马赛克图(侧面问题:是否有任何方法可以使F10群组的列直接位于F09群组的下方,并且具有与F09群组相同的宽度,即使F10群组中的某些术语没有数据?) :

这是用于创建表格和图表的数据:
df1 =
structure(list(id = c(101L, 102L, 103L, 104L, 105L, 106L, 107L,
108L, 109L, 110L, 111L, 112L, 113L, 114L, 115L, 116L, 117L, 118L,
119L, 120L, 121L, …Run Code Online (Sandbox Code Playgroud) 我有周期性数据,并且它的分布最好围绕一个圆圈可视化.现在的问题是如何使用matplotlib进行这种可视化?如果没有,可以在Python中轻松完成吗?
我的代码将演示围绕圆圈分布的粗略近似值:
from matplotlib import pyplot as plt
import numpy as np
#generatin random data
a=np.random.uniform(low=0,high=2*np.pi,size=50)
#real circle
b=np.linspace(0,2*np.pi,1000)
a=sorted(a)
plt.plot(np.sin(a)*0.5,np.cos(a)*0.5)
plt.plot(np.sin(b),np.cos(b))
plt.show()
Run Code Online (Sandbox Code Playgroud)

在SX for Mathematica的问题中有几个例子:

Brendan Gregg的CPU Flame Graph是一种基于调用堆栈在一段时间内可视化CPU使用情况的方法.
他的FlameGraph github项目提供了一种与语言无关的绘制这些图形的方法:
对于每种语言,FlameGraph都需要一种以如下行的形式提供堆栈输入的方法:
grandparent_func;parent_func;func 42
Run Code Online (Sandbox Code Playgroud)
这意味着检测程序被观察到运行函数func,其中parent_func调用它从顶级函数调用grandparent_func.它说调用堆栈被观察了42次.
如何从Python程序中收集堆栈信息并将其提供给FlameGraph?
对于奖励积分:如何扩展以便显示C和Python堆栈,甚至是Linux上的内核(与Brendan网站上的某些Java和node.js火焰图类似)?
visualization ×10
python ×5
graph ×2
networkx ×2
r ×2
algorithm ×1
c ×1
ggplot2 ×1
graphics ×1
graphviz ×1
haskell ×1
histogram ×1
javascript ×1
labels ×1
linux-kernel ×1
matplotlib ×1
neato ×1
performance ×1
placement ×1
plot ×1
scikit-learn ×1