标签: strange-attractor

有效地绘制R中的数亿个点

plot()在R键曲线100万个左右的数据点的最有效方法是什么?我想画一堆这些Clifford吸引者.这是一个我从一个非常大的图像缩小的例子:

克利福德吸引子

是我用于绘制非常大的8K(7680x4320)图像的一些代码的链接.

生成50或1亿个点(使用Rcpp)不需要很长时间,也不需要获取颜色+透明度的十六进制值,但实际绘图和保存到磁盘的速度非常慢.

  • 是否有更快的方式来绘制(并保存)所有这些点?
  • R对这项工作来说只是一个糟糕的工具吗?
  • 你会用什么工具来绘制数十亿点,即使你不能将它们全部投入到ram中?
  • 如果使用1990年代的软件和硬件,如何制作出这种类型(颜色+透明度)的高分辨率图?

编辑:使用的代码

# Load packages
library(Rcpp)
library(viridis)

# output parameters
output_width = 1920 * 4
output_height = 1080 * 4
N_points = 50e6
point_alpha = 0.05 #point transperancy

# Attractor parameters
params <- c(1.886,-2.357,-0.328, 0.918)

# C++ function to rapidly generate points
cliff_rcpp <- cppFunction(
    "
    NumericMatrix cliff(int nIter, double A, double B, double C, double D) {
    NumericMatrix x(nIter, 2);
    for (int i=1; i < nIter; …
Run Code Online (Sandbox Code Playgroud)

graphics plot r strange-attractor

36
推荐指数
1
解决办法
1270
查看次数

如何最好地在python中创建Lorenz Attractor的填充体积以进行体积渲染

我正在尝试创建一个 3D 阵列,然后在(在其他软件或体积渲染包中)像 Lorenz Attractor 这样的奇怪吸引器上执行体积渲染。例如,从数据点绘制吸引子并提供一个值来分配颜色并在 matplotlib 中进行可视化是很容易的。matplotlib 中的洛伦兹吸引子

但是我想要一个填充的体积数组。我尝试过像 griddata 这样的插值方法,但它没有给出想要的结果。我的设想是这样的:在此处输入图片说明

这是来自维基百科页面。

这是我尝试过的,但如果你在一个简单的查看器中打开结果,它看起来不太好。我在想,也许只在组成 x、y、z 数组的点之间进行插值……玩了几个小时后,我有点迷茫。我认为我需要的是取点并进行某种插值或填充到数组中,在这里我调用 interp_im。然后可以在体积渲染中查看。非常感谢任何帮助!

import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
from scipy.interpolate import griddata
from scipy.interpolate import LinearNDInterpolator
from skimage.external import tifffile

rho = 28.0
sigma = 10.0
beta = 8.0 / 3.0

def f(state, t):
    x, y, z = state  # Unpack the state vector
    return sigma * (y - x), x * (rho - z) - y, x * y …
Run Code Online (Sandbox Code Playgroud)

python numpy scipy volume-rendering strange-attractor

2
推荐指数
1
解决办法
160
查看次数

标签 统计

strange-attractor ×2

graphics ×1

numpy ×1

plot ×1

python ×1

r ×1

scipy ×1

volume-rendering ×1