我有一个3D点集合.这些点以恒定水平(z = 0,1,...,7)进行采样.图像应该清楚:

这些点是一个(N, 3)叫做numpar形状的ndarray X.上面的图使用以下方式创建:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
X = load('points.npy')
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_wireframe(X[:,0], X[:,1], X[:,2])
ax.scatter(X[:,0], X[:,1], X[:,2])
plt.draw()
Run Code Online (Sandbox Code Playgroud)
我想改为仅对该物体的表面进行三角测量,并绘制曲面.但是,我不想要这个物体的凸包,因为这会丢失我希望能够检查的细微形状信息.
我试过了ax.plot_trisurf(X[:,0], X[:,1], X[:,2]),但这导致了下面的混乱:

有帮助吗?
以下是生成代表问题的3D数据的代码段:
import numpy as np
X = []
for i in range(8):
t = np.linspace(0,2*np.pi,np.random.randint(30,50))
for j in range(t.shape[0]):
# random circular objects...
X.append([
(-0.05*(i-3.5)**2+1)*np.cos(t[j])+0.1*np.random.rand()-0.05,
(-0.05*(i-3.5)**2+1)*np.sin(t[j])+0.1*np.random.rand()-0.05,
i
])
X = np.array(X)
Run Code Online (Sandbox Code Playgroud)
这是原始数据的pastebin:
这是沿着常数z的切片:

我们的软件会生成大量地理参考和记录的数据.我们正在考虑改进可视化的方法,并在3D视图中显示(处理过的)数据,因为它的地理参考,似乎是一个好主意.
在基于Delphi-/C++ Builder的Windows应用程序中构建这些可视化时,我正在寻找有关哪些3D库最适合作为基础的SO建议.我会尽可能地加上赏金.
从中可以看出,基于空间的交互式3D可视化似乎是一种很好的方法.我正在设想一些可以轻松快速地在空间中导航的东西,数据将根据您正在查看的内容加载或生成.我希望我们不要尝试从头开始编写我们自己的3D库 - 对于这样的事情,必须有我们可以使用的良好的现有库.
所以,我希望有一个支持的库:
到目前为止,我已经考虑了两个主要的库 - 我正在寻找关于这些的知识渊博的意见,或者我没有考虑过的其他库.
1. FireMonkey
这是Embarcadero的新UI库,仅在XE2及更高版本中可用.我们的应用程序基于VCL,我们希望在VCL窗口中托管它; 这似乎是官方不支持但非正式工作正常,或通过第三方提供.
UI框架和3D框架与着色器等的混合听起来很棒.但是我不知道库是多么复杂,它对数据的支持是什么,它不是像立方体或球体那样简单的对象,以及它的设计是多么好.最后一个链接对图书馆的3D方面提出了重大批评 - 严重到足以说明我在编写一个非平凡的3D应用程序时,目前尚不确定它是否值得.
是否值得尝试使用FireMonkey在我们的VCL应用程序中编写新的可视化窗口?
2. GLScene
GLScene是Delphi着名的3D OpenGL框架.我自己从未使用它,所以没有经验,如何工作或设计.但是,我相信它可以很好地集成到VCL窗口中,并支持着色器和现代GPU.我不知道它的场景图或导航是如何工作的,或者是如何实现动态数据的.
它的功能列表特别提到了我感兴趣的一些东西,例如简单的旋转/移动,程序对象(暗示动态数据易于实现),以及用于拾取的辅助函数.似乎着色器只是Cg(不是GLSL或其他非特定于供应商的语言.)它还支持"纹理化的多态图像支持(允许多种格式以及程序纹理),易于扩展" - 这可能仅仅意味着许多图像格式,或者它可以指示可以动态改变纹理的某些东西,例如用于动态颜色映射.
这是我所知道的Delphi或C++ Builder中唯一的两个主要3D库.我错过了吗?我不知道有利有弊吗?您是否有任何使用这些目的的经验,我们应该知道和使用哪些陷阱?
我们目前使用Embarcadero RAD Studio 2010,我们的大部分软件都是用C++编写的.我们有少量的Delphi,可能会考虑升级IDE,但我们最有可能等到64位C++编译器发布.因此,在RS2010中工作的库可能是最好的.
感谢您的意见:)我正在追求高质量的答案,所以我会尽可能多地加入赏金!
我最近一直在阅读关于Java和Javascript图形库的相关内容,但我还没有找到一个很好的方法来做我想做的事情.
基本上我有一组关于一堆元素的集合(最多几千).这些组可以完全或部分重叠,完全覆盖或完全彼此不相交.我想要做的是显示以下信息:
编辑:也许我应该举例说明我的意思是集合和元素以及部分重叠的层次结构.以下是我处理的那种集合的过度简化版本(请注意数字1- 10和字母a- h并X表示彼此相当的元素):
Set1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
Set2 = {1, 2, 3, 4, 5, 6}
Set3 = {1, 2, 3}
Set4 = {1, 4, 5, 6, 7}
Set5 = {a, b, c, d, e, f, g, h}
Set6 = {a, b, c, d, e}
Set7 = {a, b, c, 7}
Set8 = {2, 4, 7, 8, c, …Run Code Online (Sandbox Code Playgroud) 我正在开发一个关于实时可视化的演示,我正在尝试开箱即用.看起来任何大数据实时演示都在Twitter或流量数据上.是否有其他选项可以发布实时数据(免费)?
谢谢
Tufte Sparklines(如他的美丽证据所示)已作为YaleToolkit的一部分在基础图形中复制,并由于这个问题而进一步完善.迷彩线也在格子中完成,作为我的小方案项目Tufte in R的一部分(自我推销并非预期).我现在的目标是在ggplot2中复制Tufte 迷你图.有一些脚本在Gist上浮动,也作为对SO的这个问题的回复,但没有一个为制作可复制的迷你图集提供了坚实的基础.
现在,我希望那些多个迷你图看起来像这样(它是在基本图形中完成的,代码在这里可用) - 点代表最大/最小值,右端的数字是特定时间序列和灰色带的最终值显示粗略的分位数范围:
我不是很远,但我坚持最小/最大值和标签的分配:
library(ggplot2)
library(ggthemes)
library(dplyr)
library(reshape)
library(RCurl)
dd <- read.csv(text =
getURL("https://gist.githubusercontent.com/GeekOnAcid/da022affd36310c96cd4/raw/9c2ac2b033979fcf14a8d9b2e3e390a4bcc6f0e3/us_nr_of_crimes_1960_2014.csv"))
d <- melt(dd, id="Year")
names(d) <- c("Year","Crime.Type","Crime.Rate")
dd <- group_by(d, Crime.Type) %>%
mutate(color = (min(Crime.Rate) == Crime.Rate | max(Crime.Rate) == Crime.Rate))
ggplot(dd, aes(x=Year, y=Crime.Rate)) +
facet_grid(Crime.Type ~ ., scales = "free_y") +
geom_line(size=0.3) + geom_point(aes(color = color)) +
scale_color_manual(values = …Run Code Online (Sandbox Code Playgroud) 我是D3的新手并在几张图表上进行实验.在使用D3 V4构建折线图时,我遇到了以下错误.
d3.line(...).x(...).y(...).interpolate不是函数
我认为这个错误是由于D3 v4中的函数插值不可用.如果有人可以帮助我使用插值函数的替换函数,那将会很棒.
我的代码在以下链接中
我想从正态分布中采样点,然后使用gganimate包一个一个地建立一个点图,直到最后一帧显示完整的点图。
适用于约 5,000 - 20,000 个点的更大数据集的解决方案至关重要。
这是我到目前为止的代码:
library(gganimate)
library(tidyverse)
# Generate 100 normal data points, along an index for each sample
samples <- rnorm(100)
index <- seq(1:length(samples))
# Put data into a data frame
df <- tibble(value=samples, index=index)
Run Code Online (Sandbox Code Playgroud)
df 看起来像这样:
> head(df)
# A tibble: 6 x 2
value index
<dbl> <int>
1 0.0818 1
2 -0.311 2
3 -0.966 3
4 -0.615 4
5 0.388 5
6 -1.66 6
Run Code Online (Sandbox Code Playgroud)
静态图显示了正确的点图:
# Create static version
plot <- ggplot(data=df, …Run Code Online (Sandbox Code Playgroud) 我有一些我想要想象的数据.源数据的每个字节大致对应于图像的像素值.
使用Python生成图像文件(位图?)的最简单方法是什么?
我试图在Jupyter笔记本中重新创建这个例子.
https://plot.ly/python/gapminder-example/
但是收到了这个错误:
PlotlyDictKeyError: 'slider' is not allowed in 'layout'
Path To Error: ['layout']['slider']
Valid attributes for 'layout' at path ['layout'] under parents ['figure']:
['angularaxis', 'annotations', 'autosize', 'bargap', 'bargroupgap',
'barmode', 'barnorm', 'boxgap', 'boxgroupgap', 'boxmode', 'calendar',
'direction', 'dragmode', 'font', 'geo', 'height', 'hiddenlabels',
'hiddenlabelssrc', 'hidesources', 'hoverlabel', 'hovermode', 'images',
'legend', 'mapbox', 'margin', 'orientation', 'paper_bgcolor',
'plot_bgcolor', 'radialaxis', 'scene', 'separators', 'shapes',
'showlegend', 'sliders', 'smith', 'ternary', 'title', 'titlefont',
'updatemenus', 'width', 'xaxis', 'yaxis']
Run `<layout-object>.help('attribute')` on any of the above.
'<layout-object>' is the object at ['layout']
Run Code Online (Sandbox Code Playgroud)
动画运行时没有将滑块dict添加到布局中,滑块可见且可操作,但不会更改图形.当我移动滑块时,它会在控制台中产生以下错误: …