Создание точечной диаграммы из фрейма данных в Pandas - PullRequest
0 голосов
/ 01 мая 2020

У меня есть DataFrame, и мне нужно сделать точечный график из него.

Мне нужно использовать 2 столбца в качестве оси X и оси Y, и мне нужно только построить 2 строки из всего набора данных. Любые предложения?

Например, мой фрейм данных ниже. Мне нужно нанести rgdp_change на ось x и diff_unemp на ось y, и мне нужно только построить состояния "Мичиган" и "Висконсин".

dataframe

Ответы [ 2 ]

0 голосов
/ 01 мая 2020

Таким образом, из фрейма данных вам нужно будет выбрать строки из списка состояний, которые вы хотите: ['Michigan', 'Wisconsin']

Я также подумал, что вы, вероятно, захотите легенду или как-то отличить одну точку от другой. Для этого мы создаем цветовую карту, назначая разные цвета для каждого состояния. Таким образом, код можно обобщать для более чем этих двух состояний.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import matplotlib.colors as colors

# generate a random df with the relevant rows, columns to your actual df
df = pd.DataFrame({'State':['Alabama', 'Alaska', 'Michigan', 'Wisconsin'], 'real_gdp':[1.75*10**5, 4.81*10**4, 2.59*10**5, 1.04*10**5],
'rgdp_change': [-0.4, 0.5, 0.4, -0.5], 'diff_unemp': [-1.3, 0.4, 0.5, -11]})

fig, ax = plt.subplots()
states = ['Michigan', 'Wisconsin']
colormap = cm.viridis
colorlist = [colors.rgb2hex(colormap(i)) for i in np.linspace(0, 0.9, len(states))]

for i,c in enumerate(colorlist):
    x = df.loc[df["State"].isin(['Michigan', 'Wisconsin'])].rgdp_change.values[i]
    y = df.loc[df["State"].isin(['Michigan', 'Wisconsin'])].diff_unemp.values[i]
    legend_label = states[i]

    ax.scatter(x, y, label=legend_label, s=50, linewidth=0.1, c=c)

ax.legend()
plt.show()

enter image description here

0 голосов
/ 01 мая 2020

Используйте метод данных plot, но сначала отфильтруйте нужные вам значения, используя индекс isin:

states =  ["Michigan", "Wisconsin"]
df[df.index.isin(states)].plot(kind='scatter', x='rgdp_change', y='diff_unemp')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...