gpt4 book ai didi

python - matplotlib 的 xkcd() 不工作

转载 作者:太空狗 更新时间:2023-10-29 21:00:11 26 4
gpt4 key购买 nike

好吧,我知道这个问题已经被问过很多次了,但我没有得到这个工作:

我尝试在 Ubuntu 16.04 LTS 64-bitpython 2.7.12 64- 上的 ma​​tplotlib 中使用 xkcd-style bit 并且我使用来自 matplotlib.org/xkcd/examples 的示例代码(见下文),但我仍然得到 this !

我做了什么

  • 通过 pip 安装 matplotlib(2.2.2 版)
  • 安装xkcdxkcd script 字体(来自ipython/xkcd-font)
  • 安装 Humor Sans 字体(来自 imkevinxu/xkcdgraphs )
  • 更新字体缓存数据库(fc-cache -fv)
  • 删除 ~/.cache/matplotlib(整个目录)
  • 重启电脑
  • 已验证,字体在 ~/.cache/matplotlib/fontList.json 中

有什么线索可以使它正常工作吗?我很感激任何提示!

你好,米夏

我使用来自 matplotlib.org/xkcd/examples 的示例代码:

from matplotlib import pyplot as plt
import numpy as np

plt.xkcd()

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
plt.xticks([])
plt.yticks([])
ax.set_ylim([-30, 10])

data = np.ones(100)
data[70:] -= np.arange(30)

plt.annotate(
'THE DAY I REALIZED\nI COULD COOK BACON\nWHENEVER I WANTED',
xy=(70, 1), arrowprops=dict(arrowstyle='->'), xytext=(15, -10))

plt.plot(data)

plt.xlabel('time')
plt.ylabel('my overall health')

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.bar([-0.125, 1.0-0.125], [0, 100], 0.25)
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.set_xticks([0, 1])
ax.set_xlim([-0.5, 1.5])
ax.set_ylim([0, 110])
ax.set_xticklabels(['CONFIRMED BY\nEXPERIMENT', 'REFUTED BY\nEXPERIMENT'])
plt.yticks([])

plt.title("CLAIMS OF SUPERNATURAL POWERS")

plt.show()

最佳答案

matplotlib 使用上下文的方式似乎有所改变。一个工作版本应该是手动使用上下文,

with plt.xkcd():
# your plot here
plt.show()

该示例将如下所示:

from matplotlib import pyplot as plt
import numpy as np

with plt.xkcd():
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
plt.xticks([])
plt.yticks([])
ax.set_ylim([-30, 10])

data = np.ones(100)
data[70:] -= np.arange(30)

plt.annotate(
'THE DAY I REALIZED\nI COULD COOK BACON\nWHENEVER I WANTED',
xy=(70, 1), arrowprops=dict(arrowstyle='->'), xytext=(15, -10))

plt.plot(data)

plt.xlabel('time')
plt.ylabel('my overall health')

plt.show()

enter image description here

这符合 current version of the example . example linked to in the question已经过时了。

关于python - matplotlib 的 xkcd() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49404704/

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