为何折线图显示为方块而非线条?Plotly代码排查求助
问题排查与解决:Plotly折线图显示方块而非线条
可能原因
- Year列数据类型错误:若Year是字符串类型,Plotly会将其视为离散分类,无法连接成连续线条,仅显示离散数据标记(方块)。
- 数据存在重复条目:同一
Area_Name+Year组合下有多个Victims_of_Rape_Total值,Plotly无法确定连线的取值依据,只能显示单个数据点标记。 - Plotly版本/渲染环境问题:旧版Plotly或渲染环境(如Jupyter Notebook)的配置异常,导致线条渲染失败。
解决办法
1. 修复Year列数据类型
先检查Year列的类型:
print(df['Year'].dtype)
若为object(字符串),转换为数值类型:
import pandas as pd df['Year'] = pd.to_numeric(df['Year'], errors='coerce') # 移除转换后产生的空值行 df = df.dropna(subset=['Year'])
2. 聚合重复数据
对同一Area_Name和Year的重复数据进行聚合(以求和为例):
df_agg = df.groupby(['Area_Name', 'Year'], as_index=False)['Victims_of_Rape_Total'].sum() # 使用聚合后的数据重新绘图 fig2 = px.line(df_agg, x="Year", y="Victims_of_Rape_Total", color='Area_Name') fig2.show()
3. 强制配置线条样式
若数据无问题但仍仅显示标记,手动设置线条可见:
fig2 = px.line(df, x="Year", y="Victims_of_Rape_Total", color='Area_Name', markers=True) # 调整线条宽度确保可见 fig2.update_traces(line=dict(width=2)) fig2.show()
4. 更新Plotly版本
如果是版本兼容问题,升级到最新版:
pip install plotly --upgrade
内容的提问来源于stack exchange,提问作者Abhijit Singh
相关产品推荐
相关产品推荐

