如何使用Plotly绘制历年词频变化的时间序列折线图
修正方案
你的问题核心是数据集结构和绘图参数不匹配:当前数据集行对应单词、列对应年份,你直接将行索引作为x轴、年份列作为y轴取值,自然会得到轴标签颠倒的结果。以下是两种可直接运行的修正方案:
方案1:转为长格式绘图(更推荐,逻辑更清晰)
import pandas as pd import plotly.io as pio import plotly.express as px pio.renderers.default='browser' # 读取数据时将第一列(单词列)设为索引后重置为普通列 df = pd.read_csv("tabledata.csv", index_col=0).reset_index(names="单词") # 转为长格式:每一行对应 单词-年份-词频 一组数据 df_long = df.melt(id_vars="单词", var_name="年份", value_name="词频计数") # 绘图,自动按单词生成不同颜色的折线 fig = px.line(df_long, x="年份", y="词频计数", color="单词", title="词频随年份变化趋势") # 可选:保证年份按文本顺序排列 fig.update_xaxes(type='category') fig.show()
方案2:转置宽表适配原有逻辑
import pandas as pd import plotly.io as pio import plotly.express as px pio.renderers.default='browser' # 读取数据时将第一列(单词列)设为索引 df = pd.read_csv("tabledata.csv", index_col=0) # 转置数据集:转置后行对应年份,列对应单词 df_t = df.T.reset_index(names="年份") fig = px.line(df_t, x="年份", y=df.columns.tolist(), labels={"value": "词频计数", "variable": "单词"}) fig.update_xaxes(type='category') fig.show()
两种方案都可以实现X轴为年份、Y轴为词频、每个单词对应一条折线的需求,运行前不需要额外修改其他配置。
内容的提问来源于stack exchange,提问作者Youngun
相关产品推荐
相关产品推荐

