AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题

问题[plotly](coding)

Martin Hope
Nicola Gigante
Asked: 2024-10-18 21:31:35 +0800 CST

如何使用 HTMX 更新 Plotly 图形的数据并保持当前视图状态(缩放/平移/等...)

  • 5

我使用 FastAPI 作为 Python 后端,并使用 Plotly 根据一些数据生成图表。在客户端,我使用 HTMX。

服务器直接发送 Plot 的 HTML Figure.to_html( full_html = False),然后 HTMX 将其直接交换到页面中的正确位置。

这一切都非常方便且易于操作,但现在我需要在数据发生变化时实时更新绘图。因此,我使用 FastAPI 和wsHTMX 扩展建立了 websocket 连接,以便在需要时更新绘图。

问题是,如果我在每次更新数据时再次发送整个图,整个图就会被 HTMX 交换,用户就会丢失图的当前视图状态,即缩放率、平移位置等...

那么有没有办法可以更详细地了解从 Plotly 发送的内容?

我需要:

  1. 仅设置一次情节(我想用 Plotly.js?)
  2. 单独发送数据(从 Plotly python 库导出它们?)
  3. 以不破坏用户视图状态的方式使用新数据更新图表。

我该如何做?可能吗?

plotly
  • 1 个回答
  • 32 Views
Martin Hope
Wang
Asked: 2024-09-20 15:29:10 +0800 CST

如何在 plotly 中禁用插值?

  • 5

我有类似以下的事情:

    fig.add_layout_image(
        dict(
            source=prefix_webp + base64.b64encode(webp_data).decode("utf-8"),
            xref='x', yref='y',  # Reference subplot axes
            x=0, y= 1,  # Position in subplot grid
            sizex=1, sizey=1,
            xanchor='left', yanchor='top',
            sizing='contain',  # Ensure it fits within the given size
        ),
        row=row, col=col
    )

因为图像的像素数量很少。如果我将图形保存为 PDF,图像就会像素化,这正是我想要的,因为它实际上代表了一些数据,我想看到每个像素的精确边缘。

但是,如果我在浏览器中显示它或将其保存为 html。图像看起来就像插值过的,并且变得平滑。

我想知道如何在 plotly 中禁用它

尝试通过模板添加 css 不起作用

html_template = '''
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Plotly Layout Image Example</title>
    <style>
        /* Custom CSS to apply pixelated rendering to images */
        img {
            image-rendering: pixelated;
        }
    </style>
</head>
<body>

    <h1>Plotly Layout Image Example</h1>
    <!-- This is where the Plotly figure will be inserted -->
    {{ fig | safe }}

</body>
</html>
'''

plotly_html = fig.to_html(full_html=False)

from jinja2 import Template
template = Template(html_template)
html_output = template.render(fig=plotly_html)
with open(os.path.expanduser('test-css.html'), 'w') as file:
    file.write(html_output)
plotly
  • 1 个回答
  • 30 Views
Martin Hope
Gerard L
Asked: 2024-08-02 17:16:35 +0800 CST

Plotly 时间线为每个资源绘制多个任务

  • 7

我有一个数据框形式的数据集,其结构如下

工作 任务 机器 开始 结尾 颜色
A 做 X 1 0 5 蓝色的
A 是吗 2 6 14 蓝色的
乙 做问 3 0 8 绿色的
乙 做 Z 3 9 12 绿色的
乙 做 X 1 14 17 绿色的
C 是吗 1 6 9 红色的

我想使用 Plotly(例如 px.timeline)在交互式时间线上绘制这些内容,类似于下面的图片,也称为甘特图。对于每台机器(y 轴),我想要一个彩色条形图来表示分配给该机器的任务,类似于其持续时间。对于我的示例数据,这意味着对于机器 1,有三个彩色条形图(0-5、6-9、14-17)。任务应根据定义的作业颜色着色,如颜色列中所述。理想情况下,将鼠标悬停在条形图上时,它会显示Job - Task, Start - end。

示例图

我使用以下内容;

Plotly 5.18.0
Python 3.9
Pandas 2.1.2

有没有办法做到这一点?

我尝试了 Plotly,但只设法在 y 轴上获取作业(https://plotly.com/python/gantt/)。我使用了https://plotly.com/python/figure-factories/,因为 px.timeline 似乎不接受开始和结束时间的整数值。

plotly
  • 2 个回答
  • 32 Views
Martin Hope
Rex
Asked: 2024-02-18 05:14:27 +0800 CST

如何摆脱绘图条形图背景颜色

  • 6

我有以下代码:

def get_amp_graph():
            ampfig = go.Figure(go.Bar(x=['1540', 'Average'], y=get_amp_acc()))
            ampfig.update_layout(plot_bgcolor='rgb(28, 28, 28)')
            amp_html = ampfig.to_html (
                include_plotlyjs=True, 
                full_html=False,
                
            )
            return amp_html

我希望背景颜色为 rgb(28, 28, 28),但随后发生了这种情况。我怎样才能让剩下的白色也变成rgb(28,28,28)

plotly
  • 1 个回答
  • 14 Views
Martin Hope
Emma Birath
Asked: 2023-08-19 01:32:58 +0800 CST

plotly - 使用 add_trace() 添加时间轴到 go.Figure 对象

  • 6

我最终尝试将 px.timeline 添加到包含 go.Scatter 的图中(类似于他们在这里所做的事情:将 Plotly Express 跟踪添加到具有多个跟踪的图形对象 go.Figure()?)。

这样做时,时间线不会显示。当我使用 add_trace() 函数时,我已将其范围缩小到一个问题。如果我在创建Figure对象时直接使用px.timeline,我的时间线显示得很好,但是当我尝试使用Figure.add_trace()将其添加到现有的Figure时,它看起来很奇怪。X 轴不再显示时间。

下面显示了显示此行为的独立代码片段。任何帮助是极大的赞赏!

import pandas as pd
import plotly.graph_objects as go
import plotly.express as px

mydata_as_json = '{"Start_Time":{"0":"2023-11-01 16:48:24.8","1":"2023-11-01 16:49:47.7","2":"2023-11-01 16:53:23.3","3":"2023-11-01 16:56:08.6","4":"2023-11-01 16:58:37.9","5":"2023-11-01 17:00:10.9"},"End_Time":{"0":"2023-11-01 16:48:37.7","1":"2023-11-01 16:51:44.3","2":"2023-11-01 16:54:00.2","3":"2023-11-01 16:57:23.4","4":"2023-11-01 16:58:56.8","5":"2023-11-01 17:01:59.1"},"Instr":{"0":"MVIC","1":"LEISA","2":"MVIC","3":"LEISA","4":"MVIC","5":"LEISA"}}'

df = pd.DataFrame(eval(mydata_as_json))

# This works
fig_good = px.timeline(
    df, 
    x_start="Start_Time", 
    x_end="End_Time", 
    y="Instr", 
)
fig_good.show()

# This doesn't work. Why?
fig_bad = go.Figure()
fig_bad = fig_bad.add_trace(
        px.timeline(
            df, 
            x_start='Start_Time', 
            x_end='End_Time', 
            y='Instr',
        ).data[0]
)
fig_bad.show()

在此输入图像描述

plotly
  • 2 个回答
  • 17 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve