Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Altair呈现错误-Javascript错误:递归太多_Python_Altair - Fatal编程技术网

Python Altair呈现错误-Javascript错误:递归太多

Python Altair呈现错误-Javascript错误:递归太多,python,altair,Python,Altair,我将Altair图表用于Python和Jupyter笔记本电脑,但如果我增加数据点的数量,其中一个(渲染?)组件将崩溃: import altair as alt import datetime import pandas as pd import random def add_minutes(tm, minutes_to_add): fulldate = datetime.datetime(100, 1, 1, tm.hour, tm.minute, tm.second) f

我将Altair图表用于Python和Jupyter笔记本电脑,但如果我增加数据点的数量,其中一个(渲染?)组件将崩溃:

import altair as alt
import datetime
import pandas as pd
import random

def add_minutes(tm, minutes_to_add):
    fulldate = datetime.datetime(100, 1, 1, tm.hour, tm.minute, tm.second)
    fulldate = fulldate + datetime.timedelta(minutes=minutes_to_add)
    return fulldate.time()

time_sort_order = []

render_hours = 13

def build_df():
    value_list = []
    start_time = datetime.time(21, 0, 0)
    for n in range(60*render_hours):
        time_to_fetch = add_minutes(start_time, 1*n)
        time_sort_order.append(str(time_to_fetch))
        value_list.append({
            "time": str(time_to_fetch),
            "value": random.randint(1, 5)
        })
    return pd.DataFrame(value_list)

df = build_df()

alt.Chart(df).mark_rect().encode(
    x=alt.X('time', sort=time_sort_order),
    color='value:Q'
)

如果我设置
render\u hours=13
: 一切正常

如果我设置
render\u hours=14
: 我得到一个空白输出

如果我设置
render\u hours=24

Javascript错误:递归太多这通常意味着输入错误 在图表规格中。请参阅javascript控制台以获取完整信息 追踪


看起来渲染器无法处理数百个条目的显式排序顺序;这可能是织女星的一个缺陷,但也有点反模式

尝试这样做:

alt.Chart(df.reset\u index()).mark\u rect().encode(
x=alt.x('time',sort=alt.SortField('index')),
color='value:Q'
)

VDP你好!谢谢您的建议,但我不知道如何使用它:我已经用您的代码片段替换了图表生成代码,并且我根本没有得到任何输出(即使渲染时间设置为12,通常渲染),我不知道问题可能是什么——当我运行它时它会工作。这里有一个Colab的工作版本,你可以试试:谢谢你,这对我帮助很大!看来我们已将问题隔离到我的环境中