用python画波浪线的句子_matplotlib中的锯齿线或波浪线
是的,但是会有一点影响。最简单的方法是在matplotlib中使用xkcd模式。在import numpy as np
import matplotlib.pyplot as plt
plt.xkcd()
plt.figure()
plt.plot(np.linspace(0.7,1.42,100),[0.7]*100)
plt.show()
这给了你以下信息:
如果你看一下code used to achieve this,你会发现xkcd函数对rcParams字典做了一些更改。最明显的是条目rcParams['path.sketch'] = (scale, length, randomness),它是一个能够模拟手绘外观的path effect。xkcd样式使用的默认参数为:
^{pr2}$
如果从matplotlib包导入rcParams字典,则可以更改该字典中的条目。在下面的示例中,我将randomness值从2增加到100:import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams['path.sketch'] = (1, 100, 100)
plt.plot(np.linspace(0.7,1.42,100),[0.7]*100)
plt.show()
这将导致以下情节:
正如你所看到的,更多的抖动和字体仍然是'正常'。然而,这种风格也被用来画轴,到目前为止我还没有找到一种方法。
两种解决方法可以是:无需绘制边框/脊椎。在
独立绘制脊椎和线条(很难实现自动化,也很烦人)。在
仔细阅读matplotlib和路径样式的文档,找出是否有一种方法只为绘制的线的子集设置路径样式。在
方案1可以这样实现:import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams['path.sketch'] = (10, 10, 100)
fig = plt.plot(np.linspace(0.7,1.42,100),[0.7]*100)
for pos, spine in fig[0].axes.spines.items():
spine.set_visible(False)
plt.show()
在我看来,这看起来还不错。无论如何,地块周围的边界被高估了。在
编辑:减少混乱
若要获得均匀的波浪线,请将“随机性”参数设置为1,然后为“振幅”和“长度”选择较小的值:import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams['path.sketch'] = (3, 10, 1)
fig = plt.plot(np.linspace(0.7,1.42,100),[0.7]*100)
for pos, spine in fig[0].axes.spines.items():
spine.set_visible(False)
plt.show()
额外图片:更多混乱rcParams['path.sketch'] = (100, 1, 100)