我需要在基于 Web 的应用程序中显示一个大矩阵。矩阵尺寸约为。1000*1000,每个单元格要么被填充,要么不被填充。
基本上,它应该是这样的(更大而且没有颜色):http : //mbostock.github.com/protovis/ex/matrix.html
我需要基本的交互,例如缩放和单击单元格。该矩阵很可能是一个稀疏矩阵。
我尝试过 Protovis,但如果矩阵大于 80*80,则渲染需要永远。
什么 Javascript 库可能适合此任务?
我有一个点列表,我想绘制它们并将它们与楼梯连接起来,如下面的屏幕截图。
df <- read.table('out.dat')
df <- df[df$V1>0,]
st <- stats.bin(x=df$V1, y=df$V2, N=100)
df2 <- as.data.frame(st$stats["mean",])
names(df2) <- c('mean.energy')
plot(df2$mean.energy, type="s",
xlab="Off-axis distance (mm)", ylab="Mean Energy (MeV)")
Run Code Online (Sandbox Code Playgroud)
我怎么能用 ggplot2 达到同样的效果?

我正在尝试使用 D3 显示直方图。
但是,如果我更改 x 域的比例,则会在各个直方图桶的宽度上出现错误。
示例中的代码有效(jsfiddle):
var x = d3.scale.linear()
.domain([0, 1])
.range([0, width]);
Run Code Online (Sandbox Code Playgroud)
但这不是(jsfiddle):
var x = d3.scale.linear()
.domain([0.2, 1])
.range([0, width]);
Run Code Online (Sandbox Code Playgroud)
其他人提到,为了缩放 x 轴,你应该使用这个:
var x = d3.scale.linear()
.domain(d3.extent(data))
.range([0, width]);
Run Code Online (Sandbox Code Playgroud)
但是,这是不可能的,因为尚未创建数据,因为数据需要 x:
var x = d3.scale.linear()
.domain([60, 95])
.range([0, width]);
// Generate a histogram using twenty uniformly-spaced bins.
var data = d3.layout.histogram()
.bins(x.ticks(7))
(values);
Run Code Online (Sandbox Code Playgroud)
那么如果需要 x 来创建数据,我该如何使用数据来创建 x 呢?
请注意,缩放直方图的大边确实有效:
var x = d3.scale.linear()
.domain([0, …Run Code Online (Sandbox Code Playgroud) 是否可以保存使用VisPy制作的图像?也许使用vispy.io.imsave或vispy.write_png?
此外,可以使用vispy.mpl_plot在vispy中绘制matplotlib数字,但是可以在matplotlib中使用vispy图像吗?
在任何情况下,我都需要使用VisPy生成一个图像对象,但我没有找到任何示例.
我正在尝试制作一个可以并排显示三件事的图形。首先是显示个人随时间的变化。接下来是显示他们的同龄人随着时间的推移发生的变化。最后是显示总体人口随时间的变化。
每个观察我有四个时间点。我想看到的是两组相邻的箱线图,一组用于对等组,一组用于总体。覆盖在每一个上的是给定个人的数据点。每组将显示时间 1、时间 2、时间 3 和时间 4 的数据。重叠的点将传达个人每次去过的地方,因此可以在两组箱线图中传达信息。
这是模拟我正在使用的数据类型的代码,以及我在创建绘图时的无效尝试。
peer <- c(rep(1, 15), rep(2, 41))
year <- rep(c(1, 2), 28)
pct <- rep(1:8, 7)
dat <- data.frame(cbind(peer, year, pct))
ggplot(dat, aes(peer==1, pct)) + geom_boxplot() + facet_grid(. ~ year)
Run Code Online (Sandbox Code Playgroud)
我不认为我的ggplot方法接近正确。请帮忙!
这是我正在尝试做的事情的草图。

我一直在修改RGL包来弄清楚如何从R中的等式绘制一个平面,但无济于事.
例如,我想想象下面的平面:
1x + 0y + 0z = 2
0x + 1y + 0z = 3
0x + 0y + 1z = 4
Run Code Online (Sandbox Code Playgroud)
似乎rgl的planes3d函数只为现有的3D绘图添加了一个平面.
我有两组平均分数和标准差,代表我们对平均估计值的信心。注意:我没有原始分数,只是表示模型输出的估计值和模型输出的估计值的 SD,围绕该平均值。
我有一个大约 20 的特征集,我想比较每个特征的平均值 +/- 标准偏差,我的 2 组中的每一个。它基本上看起来像这样:
ggplot() 似乎处理具有原始数据的数据,它计算每个特征数组的均值和标准差。boxplot() 的工作原理类似。
谁能帮我想出一种方法来以这种方式可视化我的结果?
使用 R igraph 包,我有一个具有以下边的无向图:
A--B, B--C, A--C, C--D, E--F&G--H
该plot()函数绘制了整个网络,但我只想可视化包含节点的连接组件A。
我对 Feature1、Feature2 和 Feature3 3 个特征进行了聚类,并提出了 2 个聚类。我正在尝试使用 matplotlib 可视化 3D 集群。
在下表中,有执行聚类的三个特征。簇数为 2。
Feature1 Feature2 Feature3 ClusterIndex
0 1.349656e-09 1.000000 1.090542e-09 0
1 1.029752e-07 1.000000 6.040669e-08 0
2 2.311729e-07 1.000000 1.568289e-11 0
3 1.455860e-08 6.05e-08 1.000000 1
4 3.095807e-07 2.07e-07 1.000000 1
Run Code Online (Sandbox Code Playgroud)
试过这个代码:
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = np.array(df['Feature1'])
y = np.array(df['Feature2'])
z = np.array(df['Feature3'])
ax.scatter(x,y,z, marker=colormap[kmeans.labels_], s=40)
Run Code Online (Sandbox Code Playgroud)
但是,我收到错误"ValueError: could not convert string to float: red"。因此,标记部分是我得到错误的地方。
通过在散点图中绘制点并使用集群标签进行区分,集群的 2D 可视化非常简单。
只是想知道有没有办法对集群进行 3D 可视化。
任何建议将不胜感激!
我认为它们看起来都一样,但必须有所区别。
它们全部以一列作为输入,并且y轴具有所有图的计数。