gpt4 book ai didi

python - 如何在 xkcd 图中创建网格

转载 作者:太空宇宙 更新时间:2023-11-03 13:43:39 25 4
gpt4 key购买 nike

我想在背景中创建一些带有网格的 xkcd 图。像这样example , 但当 plt.xkcd()网格没有出现在图中。

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])
plt.grid()

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()

在使用 mplot3d 绘制的情况下,网格是“有效的”,如 example 中所示.虽然,网格似乎完美。如何创建网格?

最佳答案

我正在将我的评论扩展为答案。正如 DrV 提到的,线宽设置为零,因此我们需要在调用 grid() 时明确指定。需要考虑的另一件事是网格将出现在图上,因此需要指定 zorder。如本post所述,网格应设置为 zorder=0,绘图的值应大于 3 zorder=3

所以,一个没有网格的例子是

import numpy as np
import matplotlib.pyplot as plt

plt. xkcd()
x = np.linspace(0, 1)
y = np.sin(4 * np.pi * x) * np.exp(-5 * x)

plt.fill(x, y, 'r')
plt.grid(True)
plt.show()

给予: xkcd-style plot withtout grid

网格示例:

import numpy as np
import matplotlib.pyplot as plt

plt. xkcd()
x = np.linspace(0, 1)
y = np.sin(4 * np.pi * x) * np.exp(-5 * x)

plt.fill(x, y, 'r', zorder=3)
plt.grid(True, lw=0.5, zorder=0)
plt.show()

给予: enter image description here

关于python - 如何在 xkcd 图中创建网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24988223/

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