Как создать график конкретной строки с каждым столбцом с помощью Python и какой пакет выбрать: Matplotlib или Seaborn?

Вопрос или проблема

Я пытаюсь создать график для ранжирования каждой страны с 2002 по 2023 год. Я создал этот набор данных, загрузив каждый файл csv за соответствующий год, который содержит столбцы Страны и Ранжирование, и объединив эти отдельные наборы данных, используя столбец Страны.

Теперь в этом объединенном наборе данных я хочу построить график для конкретной страны, который покажет каждое ранжирование с 2002 по 2023 год, используя Python. Также я хочу удалить десятичные дроби из каждого столбца; десятичные дроби появились, когда я использовал функцию слияния для объединения всех наборов данных.

Спасибо

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

Сравнение Matplotlib и Seaborn, вероятно, вызовет разные мнения. Лично я использую matplotlib, потому что я знаком с ним и могу делать с ним больше. Думаю — и принимайте это с осторожностью — что seaborn немного проще в использовании для начинающих, но имеет больше ограничений, чем matplotlib.

Для решения вашей проблемы с графиками вам сначала следует ознакомиться с тем, как получить доступ к данным в dataframe pandas:
https://pandas.pydata.org/docs/user_guide/indexing.html

Когда вы соберете свои данные, вы сможете начать строить график:
https://seaborn.pydata.org/tutorial/introduction.html
https://matplotlib.org/stable/tutorials/introductory/pyplot.html

Если у вас есть конкретные вопросы, не стесняйтесь спрашивать. Но, пожалуйста, постарайтесь решить свою проблему самостоятельно сначала, так как все, что я только что написал, доступно через простой поиск в Google.

Ваши десятичные дроби, вероятно, появились из-за того, что при объединении dataframes pandas автоматически преобразовал числовые данные из типа int в тип float. Если вам просто нужно построить график, это не проблема. Если вы все же хотите или нужно вернуть их обратно к int или что-то подобное, вы можете найти помощь здесь:
https://stackoverflow.com/questions/15891038/change-column-type-in-pandas

Добро пожаловать в datascience.stackexchange, Saubhik. Сначала я бы порекомендовал установить столбец стран в качестве индекса dataframe. Скажем, вы начинаете с чего-то вроде этого:

`columns = ["Rank2022", "Rank2023", "Countries"]    
    data = [[1.0, 2.0, "Исландия"], [2.0, 3.0, "Норвегия"], [3.0, 5.0, "Финляндия"], [4.0, 6.0, "Швеция"], [5.0, 2.0, "Дания"]]
    df = pd.DataFrame(data, columns=columns]`

вы можете установить индекс на столбец стран:

df = df.set_index("Countries").

Затем вы можете установить тип на int:

df = df.astype(int)

И, наконец, вы можете построить график для отдельной строки с чем-то вроде:

row = df.loc["Норвегия"]
row.plot()

Ответ или решение

Конечно! Давайте подробно разберем, как создать график для определенной страны, показывающий ее рейтинг с 2002 по 2023 годы, используя библиотеки Python, такие как Matplotlib и Seaborn. Я также объясню, как удалить десятичные числа из колонок.

Шаг 1: Импорт необходимых библиотек

Прежде всего, убедитесь, что у вас установлены необходимые библиотеки. Если они не установлены, вы можете использовать pip для их установки:

pip install pandas matplotlib seaborn

Затем импортируем библиотеки в ваш скрипт:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

Шаг 2: Загрузка и объединение данных

Допустим, у вас уже есть объединенный DataFrame, содержащий столбцы с названиями стран и их рейтингами за годы. Для примера мы создадим простой DataFrame:

# Создание примера DataFrame
data = {
    "Country": ["Norway", "Sweden", "Finland", "Denmark"],
    "Rank2002": [1.0, 2.0, 3.0, 4.0],
    "Rank2003": [1.0, 2.0, 3.0, 4.0],
    "Rank2023": [3.0, 1.0, 2.0, 4.0]
}
df = pd.DataFrame(data)

Шаг 3: Устранение десятичных чисел

Чтобы удалить десятичные числа и преобразовать данные в целочисленный тип, используйте следующий код:

# Преобразуем столбцы с рангами в int
rank_columns = ["Rank2002", "Rank2003", "Rank2023"]
df[rank_columns] = df[rank_columns].astype(int)

Шаг 4: Установка индекса

Установите столбец "Country" в качестве индекса вашего DataFrame:

df.set_index("Country", inplace=True)

Шаг 5: Выбор строки для построения графика

Теперь, когда у вас есть ваш DataFrame, вы можете выбрать строку для одной страны (например, "Norway") и построить график:

# Вытаскиваем данные для определенной страны
row = df.loc["Norway"]

# Построение графика
plt.figure(figsize=(10, 5))
sns.lineplot(data=row)
plt.title("Рейтинг Норвегии с 2002 по 2023 годы")
plt.xlabel("Год")
plt.ylabel("Рейтинг")
plt.xticks(ticks=range(len(row)), labels=row.index, rotation=45)
plt.show()

Выбор между Matplotlib и Seaborn

  • Seaborn: Естественно, более высокого уровня, удобно для создания привлекательных визуализаций с меньшим количеством кода. Подходит для быстрого создания графиков с эстетической составляющей. Хорошо подходит для начинающих.

  • Matplotlib: Предоставляет более низкий уровень управления и гибкость. Если вам нужно больше контроля над графиками, то это то, что вам нужно. Такой подход может потребовать больше кода, но результат будет более кастомизированным.

В вашем случае, так как вы работаете над презентацией статистики, я рекомендую использовать Seaborn для простоты или Matplotlib для большей кастомизации. Выбор зависит от ваших предпочтений и целей.

Заключение

Теперь у вас есть полное руководство по созданию графика для конкретной страны, а также информация о том, как убрать десятичные числа из столбцов. Выберите пакет, который вам удобнее использовать, и переходите к визуализации ваших данных! Если у вас есть дополнительные вопросы, не стесняйтесь задавать их.

Оцените материал
Добавить комментарий

Капча загружается...