plotly / plotly/plotly.py

support range() as keyword argument for go.Scatter

未关闭
#1,798 3 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

feature P3
主要语言
Python
星标
18.8k
派生
2.8k
平均合并
16 小时 26 分钟
30 天内合并 PR
21

描述

In Jupyter notebook:

import plotly.graph_objects as go
go.Figure(go.Scatter(x=range(3), y=[3, 2, 1]))

Output:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-1-be3f9396b95f> in <module>
      1 import plotly.graph_objects as go
----> 2 go.Figure(go.Scatter(x=range(3), y=[3, 2, 1]))

/usr/lib/python3.7/site-packages/plotly/graph_objs/__init__.py in __init__(self, arg, cliponaxis, connectgaps, customdata, customdatasrc, dx, dy, error_x, error_y, fill, fillcolor, groupnorm, hoverinfo, hoverinfosrc, hoverlabel, hoveron, hovertemplate, hovertemplatesrc, hovertext, hovertextsrc, ids, idssrc, legendgroup, line, marker, meta, metasrc, mode, name, opacity, orientation, r, rsrc, selected, selectedpoints, showlegend, stackgaps, stackgroup, stream, t, text, textfont, textposition, textpositionsrc, textsrc, tsrc, uid, uirevision, unselected, visible, x, x0, xaxis, xcalendar, xsrc, y, y0, yaxis, ycalendar, ysrc, **kwargs)
  39689         self["visible"] = visible if visible is not None else _v
  39690         _v = arg.pop("x", None)
> 39691         self["x"] = x if x is not None else _v
  39692         _v = arg.pop("x0", None)
  39693         self["x0"] = x0 if x0 is not None else _v

/usr/lib/python3.7/site-packages/plotly/basedatatypes.py in __setitem__(self, prop, value)
   3351             # ### Handle simple property ###
   3352             else:
-> 3353                 self._set_prop(prop, value)
   3354 
   3355         # Handle non-scalar case

/usr/lib/python3.7/site-packages/plotly/basedatatypes.py in _set_prop(self, prop, val)
   3634                 return
   3635             else:
-> 3636                 raise err
   3637 
   3638         # val is None

/usr/lib/python3.7/site-packages/plotly/basedatatypes.py in _set_prop(self, prop, val)
   3629         validator = self._validators.get(prop)
   3630         try:
-> 3631             val = validator.validate_coerce(val)
   3632         except ValueError as err:
   3633             if self._skip_invalid:

/usr/lib/python3.7/site-packages/_plotly_utils/basevalidators.py in validate_coerce(self, v)
    387             v = to_scalar_or_list(v)
    388         else:
--> 389             self.raise_invalid_val(v)
    390         return v
    391 

/usr/lib/python3.7/site-packages/_plotly_utils/basevalidators.py in raise_invalid_val(self, v, inds)
    281                 typ=type_str(v),
    282                 v=repr(v),
--> 283                 valid_clr_desc=self.description(),
    284             )
    285         )

ValueError: 
    Invalid value of type 'builtins.range' received for the 'x' property of scatter
        Received value: range(0, 3)

    The 'x' property is an array that may be specified as a tuple,
    list, numpy array, or pandas Series

Plotly is installed from Arch Linux AUR, based on version 4.1.0, built using this script.

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

使用 go.Scatter(x=range(3), y=[3, 2, 1]) 重现 Jupyter 示例,然后跟踪 stack trace 中显示的 x-property 验证。为 range 值添加回归覆盖,并确认该示例在没有 invalid-value 错误的情况下成功运行。

由索引模型根据 Issue 内容生成。

评估

技术栈
jupyter-notebook, plotly, python
领域
data-visualization
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
38/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。