gpt4 book ai didi

python-3.x - TypeError:float()参数必须是字符串或数字,而不是 'PolyCollection'

转载 作者:行者123 更新时间:2023-12-02 23:01:34 24 4
gpt4 key购买 nike

我正在尝试使用librosa.display.waveplot(y,sr)绘制音频文件
我的代码:

import librosa.display
ax1 = plt.subplot(gs[1])
y, sr = librosa.load("Audiofilepath")
ax1.plot(librosa.display.waveplot(y, sr))
我得到了结果图。即使我收到以下错误消息
TypeError: float() argument must be a string or a number, not 'PolyCollection'
我在StackOverflow中浏览了以上错误消息,结果可用于 numbers, period, nanType。但不适用于 PolyCollection
如果有 librosa绘图方面的专家,请指导我避免此错误。

最佳答案

我认为您正在使用错误的文档。 librosa.display.waveplot()的文档可以在https://librosa.org/doc/latest/generated/librosa.display.waveplot.html中找到。librosa.display.waveplot()本身不绘制任何内容,您必须调用plt.show()对其进行可视化。

import librosa
import librosa.display
import matplotlib.pyplot as plt

plt.figure()

y, sr = librosa.load("1.mp3")
librosa.display.waveplot(y, sr)

plt.title('Example of librosa.display.waveplot')

plt.tight_layout()
plt.show()
librosa.display.waveplot()的返回类型为 matplotlib.collections.PolyCollectionmatplotlib.axes.Axes.plot的参数类型可以是类似数组的或标量的。
但是,您将 PolyCollection传递给 matplotlib.axes.Axes.plot。这就是为什么 TypeError: float() argument must be a string or a number, not 'PolyCollection'引发了 ax1.plot(librosa.display.waveplot(y, sr))的原因。

关于python-3.x - TypeError:float()参数必须是字符串或数字,而不是 'PolyCollection',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63091432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com