#python #matplotlib #scatter-plot #linegraph
#python #matplotlib #точечный график #линейный график
Вопрос:
Я планировал сделать точечный график с 5000 точками данных с линией единичного круга на том же графике, но код, который у меня есть прямо сейчас, показывает довольно маленький график с огромными точками на нем. Я пытался увеличить размер этого графика, но plt.figure(figsize=(12,12))
не работает …. интересно, что я сделал не так?
import numpy as np
import scipy.stats
import matplotlib.pyplot as plt
x=scipy.stats.uniform.rvs(loc=-1, scale=2, size=5000)
y=scipy.stats.uniform.rvs(loc=-1, scale=2, size=5000)
a=np.cos(np.linspace(0, 2*np.pi, 200))
b=np.sin(np.linspace(0, 2*np.pi, 200))
plt.scatter(x,y)
plt.plot(a,b, color="red")
plt.figure(figsize=(12,12))
plt.show()
Ответ №1:
plt.figure()
создает новый пустой график. Вы должны вызвать его перед другими функциями построения графика
Вы можете установить меньший размер точки, например. plt.scatter(x, y, s=1)
Чтобы заставить круг отображаться как круг, установите равное соотношение сторон ( set_aspect('equal')
) .
import numpy as np
import scipy.stats
import matplotlib.pyplot as plt
x = scipy.stats.uniform.rvs(loc=-1, scale=2, size=5000)
y = scipy.stats.uniform.rvs(loc=-1, scale=2, size=5000)
a = np.cos(np.linspace(0, 2 * np.pi, 200))
b = np.sin(np.linspace(0, 2 * np.pi, 200))
plt.figure(figsize=(12, 12))
plt.scatter(x, y, s=1)
plt.plot(a, b, color="red")
plt.gca().set_aspect('equal')
plt.show()
Чтобы изменить figsize
после создания графика, вы можете использовать:
fig = matplotlib.pyplot.gcf()
fig.set_size_inches(15, 15)
Matplotlib также предоставляет функцию для создания круга. Вот пример настройки полупрозрачного facecolor
:
import scipy.stats
import matplotlib.pyplot as plt
x = scipy.stats.uniform.rvs(loc=-1, scale=2, size=5000)
y = scipy.stats.uniform.rvs(loc=-1, scale=2, size=5000)
plt.figure(figsize=(12, 12))
plt.scatter(x, y, s=1)
ax = plt.gca()
ax.add_patch(plt.Circle((0, 0), 1, facecolor='#FF000011', edgecolor='red'))
ax.set_aspect('equal')
plt.show()
Комментарии:
1. это работает, спасибо! но что, если мы хотим увеличить размер графика?
2. Вы меняете figsize в вызове на
plt.figure(figsize=...)
?