gpt4 book ai didi

python - 在 Windows 上使用带对数刻度的 matplotlib 出现 Unicode 错误

转载 作者:太空狗 更新时间:2023-10-30 00:28:48 25 4
gpt4 key购买 nike

我正在使用 python 2.6 和 matplotlib。如果我运行 matplotlib 画廊页面中提供的示例 histogram_demo.py,它工作正常。我大大简化了这个脚本:

import numpy as np
import matplotlib.pyplot as plt

mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)

fig = plt.figure()
ax = fig.add_subplot(111)

n, bins, patches = ax.hist(x, 50, normed=1, facecolor='green', alpha=0.75)

ax.set_yscale('log') # <---- add this line to generate the error
plt.show()

我收到此错误(在 plt.show() 行):

TypeError: coercing to Unicode: need string or buffer, dict found

我已经尝试将后端更改为许多不同的值 - 没有任何帮助。我正在使用 Qt4Agg。这是字体问题吗?看来一定是跟我的配置有什么关系。注意:因为其他问题,我刚刚重新安装了python26、matplotlib、numpy、scipy。我有另一个运行 python26 的 XP-box,它执行两个版本的脚本都没有错误。我希望有人能帮帮忙。非常感谢。

最佳答案

这是 matplotlib 字体管理中的一个错误,在我的机器上这是文件/usr/lib/pymodules/python2.6/matplotlib/font_manager.py:1220。我在下面的代码片段中突出显示了更改;这在最新版本的 matplotlib 中已修复。

if best_font is None or best_score >= 10.0:
verbose.report('findfont: Could not match %s. Returning %s' %
(prop, self.defaultFont))
[+]result = self.defaultFont[fontext]
[-]result = self.defaultFont
print "defaultFont", result
else:
verbose.report('findfont: Matching %s to %s (%s) with score of %f' %
(prop, best_font.name, best_font.fname, best_score))
result = best_font.fname
print "best_font", result

只有在找不到“好”字体并且字体管理器回退到默认字体时才会发生此错误。因此错误的发生没有明显的原因,可能是因为安装的字体发生了变化。

希望对您有所帮助!

关于python - 在 Windows 上使用带对数刻度的 matplotlib 出现 Unicode 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3479887/

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