POKEMONKENG 2024-08-14 22:47 采纳率: 21.4%
浏览 9
已结题

python cufflinks画图问题

python使用cufflinks时画图为什么会出现错误?
代码为

import pandas as pd
import cufflinks as cf
import plotly.offline as plyo
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
import plotly.offline as pyo
import plotly.io as pio
cf.set_config_file(offline=True)
plyo.init_notebook_mode(connected=True)
a=np.random.standard_normal((250,5)).cumsum(axis=0)
index=pd.date_range('2019-1-1',freq='B',periods=len(a))
df=pd.DataFrame(100+5*a,columns=list('abcde'),index=index)
print(df.head())
df.iplot(kind = 'bar',title= '示例', xTitle = 'X轴', yTitle = 'Y轴',color='aliceblue')
pyo.init_notebook_mode()

运行完出现一堆错误:
ValueError:
Invalid value of type 'builtins.str' received for the 'color' property of bar.marker.line
Received value: 'rgba(240, 248, 255, np.float64(1.0))'

The 'color' property is a color and may be specified as:
  - A hex string (e.g. '#ff0000')
  - An rgb/rgba string (e.g. 'rgb(255,0,0)')
  - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
  - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
  - A named CSS color:
        aliceblue, antiquewhite, aqua, aquamarine, azure,
        beige, bisque, black, blanchedalmond, blue,
        blueviolet, brown, burlywood, cadetblue,
        chartreuse, chocolate, coral, cornflowerblue,
        cornsilk, crimson, cyan, darkblue, darkcyan,
        darkgoldenrod, darkgray, darkgrey, darkgreen,
        darkkhaki, darkmagenta, darkolivegreen, darkorange,
        darkorchid, darkred, darksalmon, darkseagreen,
        darkslateblue, darkslategray, darkslategrey,
        darkturquoise, darkviolet, deeppink, deepskyblue,
        dimgray, dimgrey, dodgerblue, firebrick,
        floralwhite, forestgreen, fuchsia, gainsboro,
        ghostwhite, gold, goldenrod, gray, grey, green,
        greenyellow, honeydew, hotpink, indianred, indigo,
        ivory, khaki, lavender, lavenderblush, lawngreen,
        lemonchiffon, lightblue, lightcoral, lightcyan,
        lightgoldenrodyellow, lightgray, lightgrey,
        lightgreen, lightpink, lightsalmon, lightseagreen,
        lightskyblue, lightslategray, lightslategrey,
        lightsteelblue, lightyellow, lime, limegreen,
        linen, magenta, maroon, mediumaquamarine,
        mediumblue, mediumorchid, mediumpurple,
        mediumseagreen, mediumslateblue, mediumspringgreen,
        mediumturquoise, mediumvioletred, midnightblue,
        mintcream, mistyrose, moccasin, navajowhite, navy,
        oldlace, olive, olivedrab, orange, orangered,
        orchid, palegoldenrod, palegreen, paleturquoise,
        palevioletred, papayawhip, peachpuff, peru, pink,
        plum, powderblue, purple, red, rosybrown,
        royalblue, rebeccapurple, saddlebrown, salmon,
        sandybrown, seagreen, seashell, sienna, silver,
        skyblue, slateblue, slategray, slategrey, snow,
        springgreen, steelblue, tan, teal, thistle, tomato,
        turquoise, violet, wheat, white, whitesmoke,
        yellow, yellowgreen
  - A number that will be interpreted as a color
    according to bar.marker.line.colorscale
  - A list or array of any of the above

这个到底怎么才能画出图,网上没人说

  • 写回答

7条回答 默认 最新

  • 栗筝i Java领域优质创作者 2024-08-14 22:48
    关注

    以下内容参考自 AICG 生成结果,并由 '栗筝i' 整理回复,相关结果及代码方法已验证可行,有用望采纳:


    在你的代码中,使用 cufflinks 库来绘制柱状图时遇到了颜色格式的错误。这个错误主要是因为你试图将字符串 'aliceblue' 作为颜色参数传递给 iplot 函数的 color 参数,但是 cufflinks(或底层使用的 plotly)可能不支持直接将 CSS 颜色名称作为字符串输入。

    要解决这个问题,你可以尝试使用 plotly 支持的颜色格式,比如使用 RGB 或 RGBA 字符串。另外,cufflinkscolor 参数通常用于指定一个颜色序列或颜色映射,而不是单个颜色。对于柱状图,如果你想要所有柱子都是同一种颜色,你可能需要使用一个包含单个颜色的列表。

    下面是修改后的代码示例:

    import pandas as pd
    import cufflinks as cf
    import plotly.offline as pyo
    
    # 初始化 cufflinks 配置和 plotly 的 notebook 模式
    cf.set_config_file(offline=True)
    pyo.init_notebook_mode(connected=True)
    
    # 生成数据
    a = np.random.standard_normal((250, 5)).cumsum(axis=0)
    index = pd.date_range('2019-1-1', freq='B', periods=len(a))
    df = pd.DataFrame(100 + 5 * a, columns=list('abcde'), index=index)
    
    # 设置颜色为 RGB 格式的字符串列表,这里使用同一种颜色
    color = ['rgba(240, 248, 255, 1.0)']  # 对应于 'aliceblue' 的 RGBA 格式
    
    # 绘制柱状图
    df.iplot(kind='bar', title='示例', xTitle='X轴', yTitle='Y轴', colors=color)
    
    # 注意:这里使用了 'colors' 而不是 'color'
    # 'colors' 可以接受一个颜色列表,用于指定每个柱子(或系列)的颜色
    

    注意几点:

    1. 我使用了 'rgba(240, 248, 255, 1.0)' 作为 'aliceblue' 的 RGBA 等价物。
    2. 参数名从 color 改为 colors,因为 cufflinksiplot 函数中用于指定颜色的参数通常是 colors,它接受一个颜色列表。
    3. 确保只调用 pyo.init_notebook_mode(connected=True) 一次,除非你有特别的理由需要再次初始化。

    这样修改后,你的代码应该能够正常运行并显示一个柱状图,其中所有柱子都是 'aliceblue' 颜色。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月14日
  • 赞助了问题酬金15元 8月14日
  • 创建了问题 8月14日

悬赏问题

  • ¥15 (需要远程,AI不回)VB6二进制文件转换成功,但是C#转换总是失败
  • ¥15 关于#matlab#的问题:有没有什么其他办法能够保证不退出进程(相关搜索:matlab调用)
  • ¥15 依据报错在原代吗格式的基础上解决问题
  • ¥15 在虚拟机中安装flash code
  • ¥15 单片机stm32f10x编写光敏电阻调节3.3伏大功率灯亮度(光强越大灯越暗,白天正常光强灯不亮,使用ADC,PWM等模块)望各位找一下错误或者提供一个可实现功能的代码
  • ¥20 verilog状态机方法流水灯
  • ¥15 pandas代码实现不了意图
  • ¥15 GD32H7 从存储器到外设SPI传输数据无法重复启用DMA
  • ¥25 LT码在高斯信道下的误码率仿真
  • ¥45 渲染完成之后将物体的材质贴图改变,自动化进行这个操作