You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Streamlit中借助src工具复现截图中的折线图?

在Streamlit中使用src.tools绘制指定折线图的实现方案

问题描述

我已导入以下模块:

import src.tools
import src.assets

但不熟悉如何在Streamlit中使用src.tools,希望创建出类似指定折线图(数据为对应截图中的第一张图)的可视化效果,请问该编写怎样的代码?


实现步骤与代码示例

1. 先确认src.tools的绘图能力

首先需要明确src.tools中是否封装了折线图相关函数,可通过以下代码查看模块内容:

import src.tools
print(dir(src.tools))

如果输出结果中有line_chart、plot_line这类命名的函数,可直接调用;若没有,则结合Streamlit原生组件或matplotlib/plotly实现。

2. 模拟截图中的数据结构

假设截图中第一张图为日期作为横轴,多组数值作为纵轴的趋势图,先构造示例数据(可根据实际数据调整):

import pandas as pd
import streamlit as st

# 模拟数据,与截图结构匹配
data = pd.DataFrame({
    "日期": ["2024-01-01", "2024-01-02", "2024-01-03", "2024-01-04", "2024-01-05"],
    "系列1": [12, 15, 13, 17, 14],
    "系列2": [8, 10, 9, 12, 11],
    "系列3": [5, 7, 6, 8, 7]
}).set_index("日期")
# 建议将日期转为datetime类型,优化横轴显示
data.index = pd.to_datetime(data.index)

3. 结合src.tools实现折线图

情况1:src.tools有现成折线图函数

如果src.tools中封装了绘图函数(比如create_line_chart),直接调用并在Streamlit中展示:

# 调用src.tools的绘图函数,传入数据与配置参数
fig = src.tools.create_line_chart(
    data, 
    x_label="日期", 
    y_label="数值", 
    title="趋势折线图"
)
# 根据图表类型选择展示方法:matplotlib图用st.pyplot,plotly图用st.plotly_chart
st.pyplot(fig)

情况2:src.tools无现成绘图函数,用Streamlit原生方法

如果src.tools未封装绘图逻辑,直接用Streamlit内置组件或自定义样式:

# 方法1:Streamlit原生折线图,快速实现
st.line_chart(data, use_container_width=True)

# 方法2:用matplotlib自定义样式(更贴近截图效果)
import matplotlib.pyplot as plt

fig, ax = plt.subplots()
# 绘制多系列折线,添加标记点
ax.plot(data.index, data["系列1"], marker='o', label='系列1')
ax.plot(data.index, data["系列2"], marker='s', label='系列2')
ax.plot(data.index, data["系列3"], marker='^', label='系列3')
# 配置图表样式
ax.set_xlabel("日期")
ax.set_ylabel("数值")
ax.set_title("趋势折线图")
ax.legend()
ax.grid(True)

st.pyplot(fig)

4. 结合src.assets优化样式

如果src.assets包含预设的图表样式(比如配色、字体),可导入后应用:

from src.assets import chart_styles
# 应用预设配色
ax.set_prop_cycle(color=chart_styles.line_colors)

内容的提问来源于stack exchange,提问作者Ralph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 07:45:29