为啥 Plotly(在 Python3 中)不在折线图中制作不同的线?

Posted

技术标签:

【中文标题】为啥 Plotly(在 Python3 中)不在折线图中制作不同的线?【英文标题】:Why doesn't Plotly (in Python3) make different lines in a linechart?为什么 Plotly(在 Python3 中)不在折线图中制作不同的线? 【发布时间】:2022-01-14 20:50:18 【问题描述】:

我正在尝试使用 Plotly for Python3 构建折线图。我的图表显示了随着时间的推移在 5 个州的 UFO 目击次数。但是,对于 5 个状态中的每一个,所有点都用一条线连接,而不是一条线。我怎样才能有意识地认识到数据具有不同的状态?我觉得我是用“文本”参数来做这件事的,但这没有用。

数据

    year    state   sightings
7   1930    NY         2    
10  1931    NY         1    
13  1933    NY         1    
16  1935    CA         2    
20  1937    CA         1

代码

import plotly.express as px # plotly library

fig = px.line(state_UFO_sightings, 
              x="year", 
              y="total", 
              text="sightings",
              title = "Top 5 states with most UFO sightings")
fig.show()

当前折线图

【问题讨论】:

尝试关键字参数color 而不是text 【参考方案1】:

用途:

color="state"

在你的绘图函数中。

【讨论】:

【参考方案2】: 数据集在 kaggle 上。用过这个。 三个参数的简单案例px.line() key 为color 参数。您的图表可以解释为您在单个跟踪中混合状态
import plotly.express as px
import pandas as pd
import kaggle.cli
import sys, requests
from pathlib import Path
from zipfile import ZipFile
import urllib

# download some images to demonstrate
url = "https://www.kaggle.com/NUFORC/ufo-sightings"
sys.argv = [sys.argv[0]] + f"datasets download urllib.parse.urlparse(url).path[1:]".split(" ")
kaggle.cli.main()

zfile = ZipFile(f'urllib.parse.urlparse(url).path.split("/")[-1].zip')
dfs = f.filename: pd.read_csv(zfile.open(f), on_bad_lines="skip", low_memory=False)for f in zfile.infolist()

df = dfs["complete.csv"]
df["datetime"] = pd.to_datetime(df["datetime"], errors="coerce")

# calculate sightings
df = (
    df.loc[df["country"].eq("us")]
    .groupby([df["datetime"].dt.year, "state"], as_index=False)
    .size()
    .rename(columns="datetime": "year", "size": "sightings")
)

# top 5 states over all time
df = df.loc[
    df["state"].isin(
        df.groupby("state")
        .agg("sightings": "sum")
        .sort_values("sightings", ascending=0)
        .head(5)
        .index
    )
]

px.line(df, x="year", y="sightings", color="state")

【讨论】:

以上是关于为啥 Plotly(在 Python3 中)不在折线图中制作不同的线?的主要内容,如果未能解决你的问题,请参考以下文章

为啥EXCEL做出的折线图 初始点不在0 如图

如何在 R 中使用 Plotly 在折线图上仅显示一些悬停信息点

如何使用 plotly express 向折线图添加点或标记?

在plotly python中为折线图的不同部分添加文本

R Shiny 为 Plotly 折线图选择轨迹?

使用 plotly 将折线图/面积图创建为甘特图