绘制一列精度浮点值

Plotting a column of precision floating point values

我有一个数据序列,我已将其修改为以下内容:

load 'tables/csv'
load 'graphics/plot'
x =: readcsv 'table_ctl.csv'
dat =: 4 {::|:x 
dat

有问题的数据正在拉取第四列,已将数组的以下序列转置。以下是该列前五个值的示例。

13.5598 13.6815 14.027 14.132 14.0104

然而 运行:

plot dat

我收到以下错误:

|option not found: 13.5598: signal
|       signal'option not found: ',j

这个错误是由于浮点值的精度造成的吗? 谢谢。

您在传递要绘制的框列表时收到此错误,并且绘图期望其中一些框包含要绘制的数据,而其他一些框包含控制数据。 13.5598 不是绘图的有效选项。

   fread 'table_ctl.csv'
a,b,0,1,13.5598
a,b,0,1,13.6815
a,b,0,1,14.027
a,b,0,1,14.132
a,b,0,1,14.0104

   4 {::|: readcsv 'table_ctl.csv'
┌───────┬───────┬──────┬──────┬───────┐
│13.5598│13.6815│14.027│14.132│14.0104│
└───────┴───────┴──────┴──────┴───────┘

可能您认为 {:: 会自动拆箱,但只有当您给它的路径指定一个箱子时它才会这样做。请参阅 Fetch 处的顶部文本。另一个问题是这些盒子的内容是字符串,而不是浮点数:

   $ > 4 {::|: readcsv 'table_ctl.csv'
5 7
   |."1 > 4 {::|: readcsv 'table_ctl.csv'
8955.31
5186.31
 720.41
 231.41
4010.41

因此,要绘制您的数字:plot > makenum 4 {::|: readcsv 'table_ctl.csv' 从框列表开始,然后将每个框变成一个浮点框,然后拆开列表并绘制它。 makenum 带有 readcsv,在这种情况下就像一个聪明的 ". each,因为它会单独留下 non-numeric 个框。

还有一些设置需要设置,但 jd 可能也适用于此:

   fread 'table_ctl.cdefs'
 1 label    byte 1
 2 name     varbyte
 3 enabled  boolean
 4 weight   int
 5 score    float
options , LF NO \ 0 iso8601-char

   load 'data/jd'
!!! Jd key: non-commercial use only!
   jdwelcome_jd_ NB. run this sentence for important information

   jdadminnew'temp'
   CSVFOLDER=:'/path/to/csv/directory'
   jd'csvrd table_ctl.csv data'
   jd'info schema'
┌─────┬───────┬───────┬─────┐
│table│column │type   │shape│
├─────┼───────┼───────┼─────┤
│data │label  │byte   │1    │
│data │name   │varbyte│_    │
│data │enabled│boolean│_    │
│data │weight │int    │_    │
│data │score  │float  │_    │
└─────┴───────┴───────┴─────┘
   jd'get data score'
13.5598 13.6815 14.027 14.132 14.0104