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

使用cufflinks的iplot绘制散点图时遇颜色格式错误求助

问题重现

导入的库

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from chart_studio import plotly
# import plotly.plotly as pl
import plotly.graph_objs as go
import plotly.offline as of
import cufflinks as cf
import datetime as dt
%matplotlib inline

初始化代码

of.init_notebook_mode(connected = True)
cf.go_offline()

报错的绘图代码

df.iplot(kind='scatter',xTitle='Projects',
         yTitle='Donations',title='Projects vs Donations',
         symbol='x',colorscale='paired',mode='markers')

错误信息

ValueError: scatter.line的'color'属性收到无效的str类型值'rgba(166, 206, 227, np.float64(1.0))'

解决方案

方法1:手动处理颜色刻度的数值类型

问题出在cufflinks生成的颜色值里包含了np.float64(1.0),而plotly无法识别这种格式,需要将其转换为Python原生的float类型:

import plotly.colors as pc

# 获取paired定性色板的颜色值
paired_colors = pc.qualitative.Paired
# 处理每个颜色字符串,替换np.float64(1.0)为1.0
processed_colors = [color.replace('np.float64(1.0)', '1.0') if isinstance(color, str) else color for color in paired_colors]

# 使用处理后的颜色列表绘图
df.iplot(kind='scatter',xTitle='Projects',
         yTitle='Donations',title='Projects vs Donations',
         symbol='x',colors=processed_colors,mode='markers')

方法2:指定单一颜色替代colorscale

如果不需要多色散点图,可以直接指定单一颜色,绕开colorscale的格式问题:

df.iplot(kind='scatter',xTitle='Projects',
         yTitle='Donations',title='Projects vs Donations',
         symbol='x',color='#636EFA',mode='markers')

方法3:升级cufflinks到兼容版本

该错误多为cufflinks与plotly的版本兼容问题,尝试升级cufflinks到最新版:

pip install --upgrade cufflinks

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 12:59:59