在ColumnDataSource中使用float而不是integer时,Bokeh Figure看起来很奇怪

时间:2017-03-27 16:15:48

标签: python csv types bokeh

我在使用ColumnDataSources在Bokeh中创建一个简单图形时遇到问题 - 使用整数或浮点数据的结果看起来不同。使用float64时,这个数字看起来很奇怪,但它看起来与使用integer64时的外观相同。

我从去年夏天开始与Bokeh合作(本周改为0.12.4,Python 2.7.13),并且我能够在谷歌的帮助下解决我的问题 - 直到现在。

这就是我的问题: 我想绘制一个时间序列的数据(浮点数),它保存为csv文件(名为'test.csv')并读入数据帧。 csv文件看起来像这样

use Acme\Model;

function populateServer($server, array $env)
{
    // Expose a class and its methods:
    $server->setClass(Model\Calculator::class);

    // Or expose an object instance and its methods.
    // However, this only works for Zend\Soap\Server, not AutoDiscover, so
    // should not be used here.
    // $server->setObject(new Model\Env($env));

    // Expose a function:
    $server->addFunction('Acme\Model\ping');
}

以下是我正在使用的代码:

i;T
0;1.02
1;2.02
2;3.02
3;4.02
4;3.04

当根据这些数据绘制一个简单的图时,它看起来像Figure (with float64),我得到的信息“ColumnDataSource的列必须是相同的长度”。但据我了解,这些列的长度相同。

使用带有int64的csv文件

import pandas as pd
from bokeh.io import curdoc
from bokeh.layouts import layout
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure


df=pd.read_csv('test.csv', delimiter=' *; *', engine='python')
source_01 = ColumnDataSource(
            data=dict(
            x=df['i'], 
            y=df['T']))

p01 = figure(plot_height=300, plot_width=600)
p01.circle('x', 'y', source=source_01)

l1 = layout([ 
  [p01] 
])

curdoc().add_root(l1)

它看起来像以下Figure (with int64),我根据列的长度没有得到任何警告。

我不知道第一个数字中发生了什么 - 希望有人可以帮助我并告诉我我犯错的地方 - 谢谢。

0 个答案:

没有答案