我显示与D3的线图与大致下面的代码(给定规模的功能x
,y
并且浮子阵列data
):
var line = d3.svg.line()
.interpolate("basis")
.x(function (d, i) { return x(i); })
.y(function (d) { return y(d); });
d3.select('.line').attr('d', line(data));
Run Code Online (Sandbox Code Playgroud)
现在我想知道给定水平像素位置处线的垂直高度.该data
阵列具有比像素更小的数据点,并且所显示的线被内插,因此仅从data
阵列推断给定像素处的线的高度并不是直截了当的.
任何提示?
Blender有一个功能强大,易于使用,灵活的节点编辑器:
是否有一个Python库可以让我轻松创建这样的可视化开发环境?在Blender中,节点编辑器使用着色器,图像,颜色等,我想自己定义节点,套接字和预览小部件的类型,就像构建"可视DSL"一样.
编辑:我不想在Blender中创建自定义节点,但在我自己的项目中使用组件LIKE节点编辑器.我删除了Blender标签以避免混淆.
今天我想研究是否有可能以这种方式构造数据类型,它不存储其类型签名类型的数据,而是它的另一种表示形式.所以,这是我对GADT的尝试,它具有类型的类型构造函数a
,但是类型的数据构造函数ByteString
.
{-# LANGUAGE GADTs #-}
import Data.ByteString.Char8
import Data.Serialize
data Serialized a where
MkSerialized :: (Serialize a) => ByteString -> Serialized a
Run Code Online (Sandbox Code Playgroud)
现在我可以decode'
通过以下方式定义一个函数:
decode' :: (Serialize a) => Serialized a -> a
decode' (MkSerialized bs) = let Right r = (decode bs) in r
Run Code Online (Sandbox Code Playgroud)
它有效:
let s = MkSerialized (encode "test") :: Serialized String
print $ decode' s -- prints "test"
Run Code Online (Sandbox Code Playgroud)
我现在的问题是,我想Serialized
成为一个实例Functor
.
instance Functor Serialized where
fmap f (MkSerialized bs) …
Run Code Online (Sandbox Code Playgroud) 我刚刚开始学习使用Parsec解析字符串,我遇到了以下问题,我无法解决这个问题:
以下代码包含三个解析器运行,其中两个显然会失败.奇怪的是,我的自定义失败消息只会在第二次运行时发生,而不是在第三次运行时发生.
import Text.Parsec
import Text.Parsec.String
ps :: Parser String
ps = (string "123") <|> (string "456") <|> fail "my-failure"
main = do
putStrLn $ "A: " ++ show (parse ps "" "123")
putStrLn $ "\nB: " ++ show (parse ps "" "789")
putStrLn $ "\nC: " ++ show (parse ps "" "45x")
Run Code Online (Sandbox Code Playgroud)
输出:
A: Right "123"
B: Left (line 1, column 1):
unexpected "7"
expecting "123" or "456"
my-failure
C: Left (line 1, column 1):
unexpected "x"
expecting "456" …
Run Code Online (Sandbox Code Playgroud) haskell ×2
d3.js ×1
functor ×1
graphics ×1
javascript ×1
parsec ×1
python ×1
reusability ×1
svg ×1