绘图(px)animation_frame错误,日期时间不被接受

2024-05-10

我想通过绘图制作类似于以下示例的动画条形图:https://plotly.com/python/animations/ https://plotly.com/python/animations/

我有以下代码:

fig = px.bar(
  eu_vaccine_df.sort_values('date'), 
  x='country', y='people_vaccinated_per_hundred',
  color='country',
  animation_frame='date',
  animation_group='country',
  hover_name='country',
  range_y=[0,50],
  range_x=[0,30]
)
fig.update_layout(
  template='plotly_dark',
  margin=dict(r=10, t=25, b=40, l=60)
)
fig.show()

我相信这个问题与我的数据框的“日期”列有关。目前它是一个日期时间,并已使用 pd.to_datetime(covid_df['date'] 进行转换

我得到的错误如下:

ValueError                                Traceback (most recent call last)
<ipython-input-185-ff9c8cc72d87> in <module>
      7   hover_name='country',
      8   range_y=[0,50],
----> 9   range_x=[0,30]

     10 )
     11 fig.update_layout(

/opt/conda/lib/python3.7/site-packages/plotly/express/_chart_types.py in bar(data_frame, x, y, color, facet_row, facet_col, facet_col_wrap, facet_row_spacing, facet_col_spacing, hover_name, hover_data, custom_data, text, base, error_x, error_x_minus, error_y, error_y_minus, animation_frame, animation_group, category_orders, labels, color_discrete_sequence, color_discrete_map, color_continuous_scale, range_color, color_continuous_midpoint, opacity, orientation, barmode, log_x, log_y, range_x, range_y, title, template, width, height)
    352         constructor=go.Bar,
    353         trace_patch=dict(textposition="auto"),
--> 354         layout_patch=dict(barmode=barmode),
    355     )
    356 

/opt/conda/lib/python3.7/site-packages/plotly/express/_core.py in make_figure(args, constructor, trace_patch, layout_patch)
   2087     if "template" in args and args["template"] is not None:
   2088         fig.update_layout(template=args["template"], overwrite=True)
-> 2089     fig.frames = frame_list if len(frames) > 1 else []
   2090 
   2091     fig._px_trendlines = pd.DataFrame(trendline_rows)

/opt/conda/lib/python3.7/site-packages/plotly/basedatatypes.py in __setattr__(self, prop, value)
    719         if prop.startswith("_") or hasattr(self, prop):
    720             # Let known properties and private properties through
--> 721             super(BaseFigure, self).__setattr__(prop, value)
    722         else:
    723             # Raise error on unknown public properties

/opt/conda/lib/python3.7/site-packages/plotly/basedatatypes.py in frames(self, new_frames)
   2853 
   2854         # Validate frames
-> 2855         self._frame_objs = self._frames_validator.validate_coerce(new_frames)
   2856 
   2857     # Update

/opt/conda/lib/python3.7/site-packages/_plotly_utils/basevalidators.py in validate_coerce(self, v, skip_invalid)
   2540                     res.append(self.data_class(v_el))
   2541                 elif isinstance(v_el, dict):
-> 2542                     res.append(self.data_class(v_el, skip_invalid=skip_invalid))
   2543                 else:
   2544                     if skip_invalid:

/opt/conda/lib/python3.7/site-packages/plotly/graph_objs/_frame.py in __init__(self, arg, baseframe, data, group, layout, name, traces, **kwargs)
    253         _v = name if name is not None else _v
    254         if _v is not None:
--> 255             self["name"] = _v
    256         _v = arg.pop("traces", None)
    257         _v = traces if traces is not None else _v

/opt/conda/lib/python3.7/site-packages/plotly/basedatatypes.py in __setitem__(self, prop, value)
   4802                 # ### Handle simple property ###
   4803                 else:
-> 4804                     self._set_prop(prop, value)
   4805             else:
   4806                 # Make sure properties dict is initialized

/opt/conda/lib/python3.7/site-packages/plotly/basedatatypes.py in _set_prop(self, prop, val)
   5146                 return
   5147             else:
-> 5148                 raise err
   5149 
   5150         # val is None

/opt/conda/lib/python3.7/site-packages/plotly/basedatatypes.py in _set_prop(self, prop, val)
   5141 
   5142         try:
-> 5143             val = validator.validate_coerce(val)
   5144         except ValueError as err:
   5145             if self._skip_invalid:

/opt/conda/lib/python3.7/site-packages/_plotly_utils/basevalidators.py in validate_coerce(self, v)
   1084                     v = str(v)
   1085                 else:
-> 1086                     self.raise_invalid_val(v)
   1087 
   1088             if self.no_blank and len(v) == 0:

/opt/conda/lib/python3.7/site-packages/_plotly_utils/basevalidators.py in raise_invalid_val(self, v, inds)
    285                 typ=type_str(v),
    286                 v=repr(v),
--> 287                 valid_clr_desc=self.description(),
    288             )
    289         )

ValueError: 
     Invalid value of type 'pandas._libs.tslibs.timestamps.Timestamp' received for the 'name' property of frame
            Received value: Timestamp('2020-12-13 00:00:00')
    
        The 'name' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string

您应该检查“日期”列的类型(更多信息请参见本文底部)。例如,下面的代码作为一个整体可以工作。

import plotly.express as px
import pandas as pd

url = 'https://raw.githubusercontent.com/owid/covid-19-data/master/public/data/vaccinations/vaccinations.csv'
df = pd.read_csv(url)

country = 'location'
fig = px.bar(
  df.sort_values('date'), 
  x=country, y='people_vaccinated_per_hundred',
  color=country,
  animation_frame='date',
  animation_group=country,
  hover_name=country,
  range_y=[0,50],
  range_x=[0,30]
)
fig.update_layout(
  template='plotly_dark',
  margin=dict(r=10, t=25, b=40, l=60)
)
fig.show()

不过,我假设您的数据集的“日期”列不是字符串。检查它是否是字符串与其他类型(此行的计算结果为str已经,对于上述数据集):

type(df['date'][0])

要创建将日期转换为字符串的列,请将此行放在fig分配线:

df['date_str'] = df['date'].apply(lambda x: str(x))

然后,在Fig分配行中,动画帧需要设置为新列的名称(例如animation_frame='date_str').

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

绘图(px)animation_frame错误,日期时间不被接受 的相关文章

  • 如何用plotly在卫星地图上绘制箭头

    我正在尝试用绘图在卫星视图地图上可视化风向和强度 使用 Python 工作 但我想这个问题不是特定于平台的 下面是以前用Matlab制作的风图的截图 这可以通过情节实现吗 我尝试查看注释 但无法让它们在地图上工作 我尝试了如下所示的操作 但
  • 用 Plotly 绘制不同的组

    我有一个 python 数据框 看起来有点像这样 Device Date Reading Device1 1 02 17 100 33 Device1 2 02 17 300 23 Device1 3 02 17 99 00 Device2
  • 当窗口变小时,Flex 项目不会收缩[重复]

    这个问题在这里已经有答案了 我正在尝试在 CSS 弹性盒内放置两个相邻的绘图 我希望它们在调整窗口大小时也调整大小 当窗口增大时 它会按预期工作 但当窗口变小时 绘图不会缩小 var trace1 var trace2 var plotdi
  • 从绘图 3d 图中抓取相机位置

    我正在绘制 3D 图形并想要调整相机位置 对我来说最好的方法是使用查看器 根据需要缩放和旋转场景 然后以 JSON 形式获取相机位置并将其放入我的脚本中 该脚本生成图片以默认实现相同的位置 根据这条推文 https twitter com
  • 调整plotlyOutput对象的大小

    我正在尝试在闪亮的应用程序中调整plotlyOutput的大小 但在今天更新到R 3 4并更新shiny和plotly plotly 4 7 0 ggplot2 2 2 1 9000 shiny 1 0 3 之后 更改高度参数似乎不会影响绘
  • 情节子图与规格问题,值错误

    我正在尝试使用辅助 y 轴和绘图子图绘制 3 个子图 但无论我如何尝试 仍然会遇到此类错误 值错误 make subplots 的 specs 参数必须是维度为 3 x 1 的字典的 2D 列表 收到类型 的值 secondary y Tr
  • Jupyter R Notebook 中的 HTML 小部件

    使用 R 时 我无法在 Jupyter Notebooks 中显示 HTML 小部件 使用 python 时有效 例如 所有绘图图表都不能在 Jupyter R 笔记本中工作 有什么解决办法吗 library plotly set seed
  • 有什么方法可以绘制印度地图吗?

    我正在尝试使用plotly 绘制印度地图 但无法找到方法来做到这一点 下面是我在美国尝试过的代码 import pandas as pd df sample pd read csv https raw githubusercontent c
  • 如何调整包含plotly的div以绘制尺寸,使其不与文档重叠

    我正在使用plotly 在 RMarkdown 中生成一个图 但是 由于它嵌入在 div 中 因此它与以下文本重叠 我认为这是因为情节大小和 div 之间的冲突 title TITLE author AUTHOR date 1 1 2000
  • 异常模块的阴谋导入错误

    我到处搜索都找不到解决这个问题的方法 我正在尝试导入plotly在 Jupyter Notebook 中使用以下代码并分别收到以下错误 Code import sys print sys path sys path append usr l
  • 如何在标题和桑基图之间添加更多空间?

    我使用 python 和plotly 来创建桑基图 这是标题 副标题的文本和问题的图片 标题与图表重叠 如何在两者之间创造更多空间 我尝试在布局中添加 height 但这会改变我的桑基图的宽度 line2 From time str tim
  • 在折线图中的特定点添加标记

    我正在绘制一个绘图线图 并希望使用标记突出显示线图上的特定点 其中数据框中的另一列不是 NA 此外 当我将鼠标悬停在绘图上时 我只想查看位于标记点上的 y 值 而不是绘图的其余部分 这是一个可重现的示例 到目前为止我已经尝试做到这一点 li
  • 我可以取回诸如“悬停位置”、“刷位置”或“点击位置”之类的信息吗

    我想建立一个闪亮且有情节的交互式图表 Shiny 有一个内置功能来获取有关用户交互的信息 喜欢 输入 plot click 输入 plot dblclick 输入 plot hover and 输入 plot brush See http
  • Plotly:如何使用日期时间索引绘制中心有一条线的范围?

    我想绘制一条周围有范围的线 就像这张照片所示 我发布了一个原始问题 但没有指定索引是日期时间索引 我以为这并不重要 但我错了 有一个答案用数字索引覆盖它 Plotly 如何制作具有多条线和标准差阴影区域的图形 https stackover
  • 从 ggplot 转换时,plotly 会删除分组图例(按颜色、按符号)

    我不太明白为什么当我转换由ggplot to plotly using ggplotly The 情节帮助页面 https plotly com ggplot2 legend 没有任何信息 我认为他们的示例在该页面上甚至无法正常工作 任何帮
  • 如何避免绘图散点图中的文本重叠?

    我正在寻找一种解决方案来避免文本标签中的文本重叠 我用散点图创建图像 也许这里有自动化 from pandas import util import plotly express as px import plotly graph obje
  • 在 Plotly Density_Mapbox 上添加 GeoJSON 等高线作为图层

    我想在上面添加天气轮廓plotly density mapbox地图 但我不确定必要的步骤 首先 我创建了一个matplotlib等值线图以可视化数据 然后 我用了geojsoncontour创建一个geojson文件来自所说matplot
  • 绘图(px)animation_frame错误,日期时间不被接受

    我想通过绘图制作类似于以下示例的动画条形图 https plotly com python animations https plotly com python animations 我有以下代码 fig px bar eu vaccine
  • 重定向到破折号中的 url

    我正在使用 dash 构建一个仪表板 每当单击特定数据点时 我都会创建一个唯一的 url 如何将用户重定向到此创建的 url 我正在使用下面给出的代码 每当有人单击任何数据点时 单击事件就会触发并执行回调函数 app layout html
  • 通过 Shiny 中的串扰将 Plotly 与 DT 结合使用

    我正在编写一个应用程序来将 csv 文件读取为闪亮的并将散点图与 DT 表链接起来 我几乎遵循了 Plotly 网站上 DT 数据表上的示例 https plot ly r datatable https plot ly r datatab

随机推荐