Есть ли какой-нибудь способ сделать график рассеяния временных рядов с размерами массивов в Matplotlib? - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь создать диаграмму рассеяния с данными временных рядов в кадре данных Pandas. Я хотел бы сделать размер маркеров пропорциональным значениям в массиве.

matplotlib.pyplot.plot_date(x, y) не будет работать, потому что не будет принимать аргумент размера маркера.

Когда я пытаюсь использовать plt.scatter, он возвращает ошибку invalid type promotion.

Есть ли альтернативы, которые стоит попробовать?

1 Ответ

0 голосов
/ 02 мая 2018

Учитывая это df:

import matplotlib.pyplot as plt
import pandas as pd
df = {'col1': ['2017-12-01','2017-12-02','2017-12-03', '2017-12-04'],
      'col2': [5,10,20,30]}
df = pd.DataFrame(data=df)
df['col1'] = pd.to_datetime(df['col1'], format='%Y-%m-%d')
x = df['col1']
y = df['col2']
print df
         col1  col2
0  2017-12-01     5
1  2017-12-02    10
2  2017-12-03    20
3  2017-12-04    30

и этот массив:

a =[1,5,10,20]

Вы можете попробовать так:

for index, i in enumerate(a):
    plt.plot(df.iloc[index][0], df.iloc[index][1], marker='.', linestyle='None', markersize=i*2, color='r')
plt.show()

enter image description here

...