Ответы пользователя по тегу Инфографика
  • Как нарисовать гистограмму?

    Maksim_64
    @Maksim_64
    Data Analyst
    Мы строим диаграммы (гистограмма это разновидность диаграммы), для того что бы иметь какое то полезное представление о данных, диаграмма должна о чем то "говорить". О чем же мне должна рассказать твои диаграмма (приложенное фото), я не знаю. Гистограмма показывает плотность распределения номинальную или относительную. То есть номинальную зеленых шариков у меня 10, красных 5, а белых один, относительную в виде пропорций то есть 10/16, 5/16, 1/16. Где 16 это общее количество элементов. Это дискретный кейс, известный как bar chart. Также есть непрерывный кейс, например значения наши от 0 до 1 или -3 до 3. Мы разбиваем на интервалы известные как "bins" и считаем количество номинальное или относительное в каждом интервале. Давай пример сообразим.
    zero_ones = np.random.choice([0,1], 100, p = [0.3,0.7])
    unique, counts = np.unique(zero_ones, return_counts=True)
    unique_strings = [str(digit) for digit in unique]
    plt.bar(unique_strings,counts, edgecolor='black')
    plt.show()


    Мы сгенерировали 100 нулей и единичек с вероятность 30% иметь 0 и 70% иметь 1 (для примера). Посчитали из массива и смотрим посредством графика на распределение данных.
    Пример два
    X = np.random.normal(0,1,1000)
    plt.hist(X, edgecolor='black', bins=50)
    plt.show();

    Мы сгенерировали выборку 1000 значений из гаусового распределения с параметрами среднее 0 и стандартное отклонение 1. Разбили на 50 интервалов и посчитали количество в каждом интервале.
    Вот это гистограммы. Они рассказывают о плотности распределения.
    А то что у тебя это не гистограмма. Что у нас по оси индексы, что по оси y 1 или 0. Какие то индексы пропущены, там и пробелы. В гистограммах по оси 'x' у тебя уникальные значения, а по оси 'y' либо номинальное либо относительное количество.
    Ответ написан
    Комментировать
  • Как построить диаграмму в Python по массиву?

    Maksim_64
    @Maksim_64
    Data Analyst
    Какой именно график, интересует? Я не знаю что ты читал, но построить элементарно. matplotlib, seaborn, например.
    import matplotlib.pyplot as plt
    import numpy as np
    a = np.array([2, 2, 2, 1, 2, 1, 1, 2])
    unique, counts = np.unique(a, return_counts=True)
    unique_strings = [str(digit) for digit in unique]
    plt.bar(unique_strings, counts)
    plt.show();
    А так заходишь в галерею matplotlib и просто берешь кокретные примеры.
    Ответ написан
  • Как можно средствами python сделать такое окно, чтобы не в самом коде менять параметры моделирования тела, а из такого окна?

    Maksim_64
    @Maksim_64
    Data Analyst
    matplotlib для визуализаций в том числе интерактивных + tkinter для gui. Вот можешь прям пример из доков matplotlib взять для создания интерактивного графика, где ты можешь изменять частоту синусоиды и начать из него делать то что тебе нужно. https://matplotlib.org/stable/gallery/user_interfa...
    Ответ написан
    Комментировать
  • Как добавить готовый график в Figure (matplotlib)?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ты уверен что ты понимаешь что такое объект Figure в matplotlib? Это канва, на которой ты размещаешь axes (оси координат и уже на этих осях ты непосредственно рисуешь графики). Прямого api что бы засунуть sympy plot на matplolib figure, не существует. Потому что это не оси с графиками а своя ФИГУРА с осями и на них графиками.

    Можно ли это обойти, да конечно можно создать урода и присобачить на figure sympy plot.
    import matplotlib.pyplot as plt
    import numpy as np
    from sympy import Symbol
    from sympy.plotting import plot
    x = Symbol('x')
    X = np.linspace(-3,3,100)
    y = np.cos(X)
    def add_plot(p, ax):
        backend = p.backend(p)
        backend.ax = ax
        
        backend._process_series(backend.parent._series, ax, backend.parent)
        backend.ax.spines['right'].set_color('none')
        backend.ax.spines['bottom'].set_position('zero')
        backend.ax.spines['top'].set_color('none')
        plt.close(backend.fig)
    
    p = plot(x**2, (x, 0, 3), show=False)
    
    fig, ax  = plt.subplots(1,2, figsize=(18,9))
    ax[0].plot(X,y)
    add_plot(p, ax[1]);


    Вот мы имеем фигуру с двумя осями, одна нормальная matplob'вская вторая из sympy.
    Вот здесь кто то постарался и прикрутил. Почитай, что пишут.
    Ответ написан
    Комментировать
  • Какую библиотеку Python лучше использовать для создания точечных Excel диаграмм с двумя координатами?

    Maksim_64
    @Maksim_64
    Data Analyst
    Вот то что вы ищете с учетом экспорта в excel при чем на всякий случай несколькими способами.
    www.geeksforgeeks.org/python-plotting-scatter-char...
    Ответ написан
    Комментировать