gpt4 book ai didi

python - 在 Python 中绘制更平滑的 fork 图

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

我正在使用matplotlib.scatter绘制一个系统的 fork 图,该系统经历了周期倍增的混沌路线。使用可以找到的数据here ,我使用以下命令:

import numpy as np
import matplotlib.pyplot as plt
p_chi0,b_chi0=np.loadtxt('data.dat')
plt.scatter(p_chi0,b_chi0,s=0.2,marker=".")
plt.xlim([2.35,2.6])
plt.show()

我得到以下情节:

enter image description here

但是,正如您所看到的,线条并不平滑。即使存在这些 fork ,是否有一种方法可以对这种类型的数据进行插值,使其不是一一对应的?

最佳答案

将每个数据点绘制为一个像素大小时,您将获得最准确的数据表示。

import numpy as np
import matplotlib.pyplot as plt

p, b = np.loadtxt('data/bifurcation.txt')

fig, ax = plt.subplots(figsize=(8,6), dpi=100)

# Plot one pixel sizes markers
ax.plot(p,b, ls="", marker=",")
# or with scatter.
#ax.scatter(p,b, s=(72./fig.dpi)**2, marker='o', lw=0,)

ax.set_xlim([2.35, 2.6])
fig.savefig('bifurcation.png')
plt.show()

enter image description here

但这看起来一点也不顺利。通过选择较大的标记尺寸,然后增加 dpi 和图形尺寸,您将获得平滑表示。然后将图像重新采样到原始尺寸将使结果看起来更平滑。

此外,使用基于开罗的后端将是有益的,因为基于 Agg 的后端在标记标记时不准确。

import matplotlib
matplotlib.use("Qt5Cairo")
import numpy as np
import matplotlib.pyplot as plt

p, b = np.loadtxt('data/bifurcation.txt')

fig, ax = plt.subplots(figsize=(8,6), dpi=300)

ax.scatter(p,b, s=(2*72./fig.dpi)**2, marker='o', lw=0)

ax.set_xlim([2.35, 2.6])
fig.savefig('bifurcation.png')
plt.show()

enter image description here

关于python - 在 Python 中绘制更平滑的 fork 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53266364/

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