Вы получите самое точное точное представление данных при построении каждой точки данных размером ровно в один пиксель.
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](https://i.stack.imgur.com/X0dEx.png)
Это, однако, выглядит не совсем гладко.Вы получите сглаженное представление, выбрав больший размер маркера, но затем увеличивая 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](https://i.stack.imgur.com/qcRUT.png)