Как поместить маркер в фиксированное местоположение с помощью графиков matplotlib при изменении xlim, ylim

#python #matplotlib

#python #matplotlib

Вопрос:

Я хочу поместить маркер в группу графиков matplotlib, которые удовлетворяют условию. Графики имеют разные диапазоны (xlim, ylim), поэтому я бы хотел, чтобы он не зависел от этих значений.

Я создал простой универсальный скрипт для объяснения идеи:

 import random
import numpy as np
import matplotlib.pyplot as plt
from IPython.display import clear_output

for i in range(30):
    clear_output(wait=True)

    y=np.random.normal(random.randint(-10,10),1*random.randint(0,200),20)
    x=np.random.normal(random.randint(-10,10),1*random.randint(0,200),20)
    plt.grid(True)
    plt.xlim([-200,200])
    plt.ylim([-200,200])
    plt.scatter(0,0,color='blue', marker="o", alpha=0.1, s=3000)
    plt.scatter(x,y)
    if np.mean(x)**2.   np.mean(y)**2. <= 25**2:
        plt.scatter(np.mean(x),np.mean(y),color='lightgreen',marker='$odot

В этом вы видите зеленый маркер, который отображает "правильно!". Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?


Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:

 import random
import numpy as np
import matplotlib.pyplot as plt
from IPython.display import clear_output
from matplotlib.lines import Line2D

legend_correct_element = [Line2D([0], [0], marker='s', color='w', label='Correct', markerfacecolor='lightgreen', markersize=15)]
legend_incorrect_element = [Line2D([0], [0], marker='X', color='w', label='Incorrect', markerfacecolor='red', markersize=15)]

for i in range(30):
    clear_output(wait=True)

    ## for reproducibility
    np.random.seed(42)
    y=np.random.normal(random.randint(-10,10),1*random.randint(0,200),20)
    x=np.random.normal(random.randint(-10,10),1*random.randint(0,200),20)

    plt.grid(True)
    plt.xlim([-200,200])
    plt.ylim([-200,200])
    plt.scatter(0,0,color='blue', marker="o", alpha=0.1, s=3000)
    plt.scatter(x,y)
    if np.mean(x)**2.   np.mean(y)**2. <= 25**2:
        plt.scatter(np.mean(x),np.mean(y),color='lightgreen',marker='$odot

введите описание изображения здесь

введите описание изображения здесь



,s=5000)
plt.scatter(100,0,color='lightgreen',marker='$mathrm{correct!}В этом вы видите зеленый маркер, который отображает "правильно!". Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

, s=7000)
if np.mean(x)**2. np.mean(y)**2. > 25**2:
plt.scatter(0,0,color='red',marker='$X

В этом вы видите зеленый маркер, который отображает "правильно!". Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

,s=1000)
plt.scatter(np.mean(x),np.mean(y),color='red',marker='$odotВ этом вы видите зеленый маркер, который отображает "правильно!". Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

,s=500)
plt.show()

В этом вы видите зеленый маркер, который отображает "правильно!". Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

,s=5000)
plt.scatter(100,0,color='lightgreen',marker='$mathrm{correct!}введите описание изображения здесь

введите описание изображения здесь

,s=5000)
plt.scatter(100,0,color='lightgreen',marker='$mathrm{correct!}В этом вы видите зеленый маркер, который отображает "правильно!". Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

, s=7000)
if np.mean(x)**2. np.mean(y)**2. > 25**2:
plt.scatter(0,0,color='red',marker='$X

В этом вы видите зеленый маркер, который отображает "правильно!". Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

,s=1000)
plt.scatter(np.mean(x),np.mean(y),color='red',marker='$odotВ этом вы видите зеленый маркер, который отображает "правильно!". Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

,s=500)
plt.show()

В этом вы видите зеленый маркер, который отображает «правильно!». Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

, s=7000)
plt.legend(handles=legend_correct_element)
if np.mean(x)**2. np.mean(y)**2. > 25**2:
plt.scatter(0,0,color=‘red’,marker=‘$Xвведите описание изображения здесь

введите описание изображения здесь

,s=5000)
plt.scatter(100,0,color=‘lightgreen’,marker=‘$mathrm{correct!}В этом вы видите зеленый маркер, который отображает «правильно!». Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

, s=7000)
if np.mean(x)**2. np.mean(y)**2. > 25**2:
plt.scatter(0,0,color=‘red’,marker=‘$X

В этом вы видите зеленый маркер, который отображает «правильно!». Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

,s=1000)
plt.scatter(np.mean(x),np.mean(y),color=‘red’,marker=‘$odotВ этом вы видите зеленый маркер, который отображает «правильно!». Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

,s=500)
plt.show()

В этом вы видите зеленый маркер, который отображает «правильно!». Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

,s=1000)
plt.scatter(np.mean(x),np.mean(y),color=‘red’,marker=‘$odotвведите описание изображения здесь

введите описание изображения здесь

,s=5000)
plt.scatter(100,0,color=‘lightgreen’,marker=‘$mathrm{correct!}В этом вы видите зеленый маркер, который отображает «правильно!». Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

, s=7000)
if np.mean(x)**2. np.mean(y)**2. > 25**2:
plt.scatter(0,0,color=‘red’,marker=‘$X

В этом вы видите зеленый маркер, который отображает «правильно!». Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

,s=1000)
plt.scatter(np.mean(x),np.mean(y),color=‘red’,marker=‘$odotВ этом вы видите зеленый маркер, который отображает «правильно!». Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

,s=500)
plt.show()

В этом вы видите зеленый маркер, который отображает «правильно!». Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

,s=500)
plt.legend(handles=legend_incorrect_element)
plt.show()введите описание изображения здесь

введите описание изображения здесь

,s=5000)
plt.scatter(100,0,color=‘lightgreen’,marker=‘$mathrm{correct!}В этом вы видите зеленый маркер, который отображает «правильно!». Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

, s=7000)
if np.mean(x)**2. np.mean(y)**2. > 25**2:
plt.scatter(0,0,color=‘red’,marker=‘$X

В этом вы видите зеленый маркер, который отображает «правильно!». Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

,s=1000)
plt.scatter(np.mean(x),np.mean(y),color=‘red’,marker=‘$odotВ этом вы видите зеленый маркер, который отображает «правильно!». Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь

,s=500)
plt.show()

В этом вы видите зеленый маркер, который отображает «правильно!». Я хотел бы представить это как какую-то легенду с фиксированным местоположением. Как я мог это сделать?

Ответ №1:

Вы можете создать пользовательскую легенду и указать форму, цвет и тип маркера, а также отображать разные легенды в зависимости от того, хотите ли вы пометить маркер как правильный или неправильный. Например:


введите описание изображения здесь

введите описание изображения здесь