我在使用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),我根据列的长度没有得到任何警告。
我不知道第一个数字中发生了什么 - 希望有人可以帮助我并告诉我我犯错的地方 - 谢谢。