Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用dash upload组件上传csv文件并生成图形

使用dash upload组件上传csv文件并生成图形
EN

Stack Overflow用户
提问于 2020-02-14 01:08:12
回答 1查看 14.6K关注 0票数 5

我想上传一个csv文件并生成一个从csv文件输出数据的图表,我能够上传csv并使用dash_table显示数据,但是我无法使图形工作。上传csv文件后我的错误:无效参数figure.data传递到ID为"Mygraph“的图中。预期会有一个数组。提供了object类型。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import base64
import datetime
import io
import plotly.graph_objs as go
import cufflinks as cf

import dash
from dash.dependencies import Input, Output, State
import dash_core_components as dcc
import dash_html_components as html
import dash_table

import pandas as pd

external_stylesheets = ["https://codepen.io/chriddyp/pen/bWLwgP.css"]

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
server = app.server

colors = {"graphBackground": "#F5F5F5", "background": "#ffffff", "text": "#000000"}

app.layout = html.Div(
    [
        dcc.Upload(
            id="upload-data",
            children=html.Div(["Drag and Drop or ", html.A("Select Files")]),
            style={
                "width": "100%",
                "height": "60px",
                "lineHeight": "60px",
                "borderWidth": "1px",
                "borderStyle": "dashed",
                "borderRadius": "5px",
                "textAlign": "center",
                "margin": "10px",
            },
            # Allow multiple files to be uploaded
            multiple=True,
        ),
        dcc.Graph(id="Mygraph"),
        html.Div(id="output-data-upload"),
    ]
)


@app.callback(
    Output("Mygraph", "figure"),
    [Input("upload-data", "contents"), Input("upload-data", "filename")],
)
def update_graph(contents, filename):
    fig = {
        "layout": go.Layout(
            plot_bgcolor=colors["graphBackground"],
            paper_bgcolor=colors["graphBackground"],
        )
    }

    if contents:
        contents = contents[0]
        filename = filename[0]
        df = parse_data(contents, filename)
        df = df.set_index(df.columns[0])
        fig["data"] = df.iplot(
            asFigure=True, kind="scatter", mode="lines+markers", size=1
        )

    return fig


def parse_data(contents, filename):
    content_type, content_string = contents.split(",")

    decoded = base64.b64decode(content_string)
    try:
        if "csv" in filename:
            # Assume that the user uploaded a CSV or TXT file
            df = pd.read_csv(io.StringIO(decoded.decode("utf-8")))
        elif "xls" in filename:
            # Assume that the user uploaded an excel file
            df = pd.read_excel(io.BytesIO(decoded))
        elif "txt" or "tsv" in filename:
            # Assume that the user upl, delimiter = r'\s+'oaded an excel file
            df = pd.read_csv(io.StringIO(decoded.decode("utf-8")), delimiter=r"\s+")
    except Exception as e:
        print(e)
        return html.Div(["There was an error processing this file."])

    return df


@app.callback(
    Output("output-data-upload", "children"),
    [Input("upload-data", "contents"), Input("upload-data", "filename")],
)


def update_table(contents, filename):
    table = html.Div()

    if contents:
        contents = contents[0]
        filename = filename[0]
        df = parse_data(contents, filename)

        table = html.Div(
            [
                html.H5(filename),
                dash_table.DataTable(
                    data=df.to_dict("rows"),
                    columns=[{"name": i, "id": i} for i in df.columns],
                ),
                html.Hr(),
                html.Div("Raw Content"),
                html.Pre(
                    contents[0:200] + "...",
                    style={"whiteSpace": "pre-wrap", "wordBreak": "break-all"},
                ),
            ]
        )

    return table


if __name__ == "__main__":
    app.run_server(debug=True)

错误:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-14 02:20:44

您需要创建一个go.Figure对象并返回它,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@app.callback(Output('Mygraph', 'figure'), [
Input('upload-data', 'contents'),
Input('upload-data', 'filename')
])
def update_graph(contents, filename):
    x = []
    y = []
    if contents:
        contents = contents[0]
        filename = filename[0]
        df = parse_data(contents, filename)
        df = df.set_index(df.columns[0])
        x=df['DATE']
        y=df['TMAX']
    fig = go.Figure(
        data=[
            go.Scatter(
                x=x, 
                y=y, 
                mode='lines+markers')
            ],
        layout=go.Layout(
            plot_bgcolor=colors["graphBackground"],
            paper_bgcolor=colors["graphBackground"]
        ))
    return fig

取决于您想要的图形类型(例如,go.Scatter)和要显示的值类型(xy值)。若要向绘图添加更多行,可以向具有不同值的go.Scatter数组中添加更多的data对象。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60223161

复制
相关文章
fusionUI上传组件Upload的使用
我们在使用时该使用哪些参数呢?这取决于你的使用方式,如果只是一个单独的上传文件的组件一般需要三个参数,action、onChange、name属性。
挥刀北上
2021/12/24
1.4K0
fusionUI上传组件Upload的使用
el-upload上传文件
这个比较简单,因为element-plus也封装好了,只需要使用headers属性,去设置请求头即可
赤蓝紫
2023/03/16
2K0
el-upload上传文件
组件分享之前端组件——文件上传小部件jQuery-File-Upload
近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。
cn華少
2022/05/18
3.3K0
[PHP] 使用php生成下载csv文件
单元格内容用英文逗号分隔, 其中为了防止乱码,汉字部分会进行一个转码操作,从utf8转为gbk
唯一Chat
2020/08/25
2.9K0
[PHP] 使用php生成下载csv文件
upload-labs文件上传漏洞
基于 upload-labs 靶机进行文件上传漏洞学习,网上通关教程很多,这里我只记录下我觉得重要的和容易忘的知识点,感谢 c0ny 大佬
棒棒鸡不棒
2022/09/02
1.2K0
upload-labs文件上传漏洞
DVWA & Vulnerability: File Upload(文件上传)
绕过方法有很多,这里只是讲几种我知道的方法,本人也是菜鸟一枚,写的不正确的地方欢迎大佬纠正,本篇博客也是为了记录一下自己踩到的坑,记录自己成长的点滴,以后方便查看,同时也希望能够帮到各位朋友,感谢!
TenG
2020/10/28
2.1K0
DVWA & Vulnerability: File Upload(文件上传)
Ant Design中使用Upload上传组件如何自定义文件列表展示位置
现有一个需求,是上传文件,点击浏览文件按钮,选中文件后,在按钮的上方显示,上传的文件列表,如下图所示
小码农薛尧
2021/03/03
3.1K0
Ant Design中使用Upload上传组件如何自定义文件列表展示位置
Django 生成CSV 文件
django可以将数据库里面的数据生成到CSV文件里面,用户可以下载CSV文件,之后使用excle打开就可以看到
一写代码就开心
2022/05/16
2.2K0
Django 生成CSV 文件
ant design中upload组件 上传图片压缩
不想描述多余的,直接看代码简单直接 const [defaultFileList, setDefaultFileList] = useState([]); <Upload accept="image/*" customRequest={uploadImage} onChange={handleOnChange} listType="picture-card"
我乃小神神
2021/12/07
1.5K0
如何使用Upload_Bypass实现文件上传限制绕过
Upload_Bypass是一款功能强大的文件上传限制绕过工具,该工具旨在帮助广大渗透测试人员和漏洞Hunter们测试目标Web应用程序的文件上传机制。该工具能够利用各种漏洞利用技术来简化漏洞的识别和利用过程,以确保对目标Web应用程序执行详尽且全面的安全评估。
FB客服
2023/10/07
4840
如何使用Upload_Bypass实现文件上传限制绕过
Rocket框架多文件上传,介绍rocket_upload 使用
Rust让这种情况彻底改观。Rust本身在系统开发方面就有不错的表现,社区中又出现了不少优秀的开源框架提供Web编程支持。 这其中老牌的Actix和新秀Rocket是用的比较多的两个。个人其实用Actix多一些,毕竟出来时间长,性能评测得分又比较高,社区还有比较好的支持。比如解决MultiPart FormData上传已经有了好用的工具箱awmp。 但作为万年不变的乙方代表,很多时候对于开发环境的选择还是做不到完全自主。Rocket也是不时的会用一下,Rocket易用性更好,上手容易。对于文件上传,工具本身也提供了一些粗糙的支持,但跟awmp比还是差了很多。
俺踏月色而来
2019/12/10
1.3K1
vue上传文件组件使用_uniapp支持ios文件上传
document.getElementById(‘upload_file’).click()
全栈程序员站长
2022/09/22
2.5K0
nodejs文件上传组件multer使用
多图上传,发送端: var express = require('express') var rp = require('request-promise') var fs = require("fs
用户1141560
2017/12/26
2.8K0
ASP.NET Core WEB API 使用element-ui文件上传组件el-upload执行手动文件文件,并在文件上传后清空文件
  从开始学习Vue到使用element-ui-admin已经有将近快两年的时间了,在之前的开发中使用element-ui上传组件el-upload都是直接使用文件选取后立即选择上传,今天刚好做了一个和之前类似的文件选择上传的需求,不过这次是需要手动点击按钮把文件上传到服务器中进行数据导入,而且最多只能够选择一个文件进行上传,上传成功后需要对file-list中的文件列表数据进行清空操作,在这里服务端使用的是ASP.NET Core WEB API来进行文件流数据接收和保存。
追逐时光者
2020/04/16
2.5K0
Angular2使用ng2-file-upload上传文件
Angular2中有两个比较好用的上传文件的第三方库,一个是ng2-file-upload,一个是ng2-uploader。ng2-uploader是一个轻便的上传文件的支持库,功能较弱,而ng2-file-upload是一个功能比较全面的上传文件的支持库。这里主要介绍一下ng2-file-upload的使用。
用户5640963
2019/07/25
1.5K0
el-upload多文件上传_vue 界面
3.:http-request函数内容,将上传成功的文件保存到mode里面,mode是自己在data里面定义的变量,初始值是mode:{}
全栈程序员站长
2022/09/27
8200
【SpringBoot】SpringBoot上传文件报:The temporary upload location ***is not valid
错误提示:The temporary upload location ***is not valid
用户5640963
2021/07/15
2.7K0
Python使用csv模块读写csv文件
有时也称为字符分隔值,因为分隔字符也可以不是逗号,其文件以纯文本形式存储表格数据。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。
Python碎片公众号
2021/02/26
3.5K0
Python使用csv模块读写csv文件
使用python cgi上传文件并计算m
对文件拷贝后进行MD5值比较,看是不是拷贝完全。google和baidu上都是使用md5模块读取所有的文件进内存,在计算md5,导致计算超过1G大小的文件报错。增量计算MD5的方法:
py3study
2020/01/13
9660
LINQ 从 CSV 文件生成 XML
本文参考:http://msdn.microsoft.com/zh-cn/library/bb387090.aspx
跟着阿笨一起玩NET
2018/09/19
1.3K0

相似问题

使用Dash Upload组件发布csv文件

10

如何使用Dash upload组件显示包含我上传的文件的pandas数据帧?

241

如何使用Dash上传、处理和下载.csv文件?

147

多文件上传中Liferay.Upload组件的使用

43

如何通过class.upload.php上传csv文件?

38
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文