magicsword
magicsword

Reputation: 1289

Pandas plot a repeating dataframe

I'm trying to graph a pandas dataframe that contains 2 columns as shown below:

For i in data1:
  for j in data2:
      traces.append(
           go.Scatter(
                 x=df['A'],
                  y=df['B']
               )
           )

plot

tab

Column A has repeating values. When I Plot them it plots the first points correctly (column 'A' 1,2,3 column 'B' 2,5,6) but when it goes to plot the second set of repeating values 'A' 1,2,3 'B' 4,2,3 it draws a line from 'B' point 6 to the next point on 'B' point 2. It doesn't start again as shown below.

from this:

Not

to this:

Yes

Upvotes: 3

Views: 840

Answers (2)

DYZ
DYZ

Reputation: 57033

Basically, you need to plot each three lines separately:

ax = plt.axes()
df['span'] = df.index // 3 # Assign identical markers to each span
df.groupby('span').apply(lambda x: x.plot(x='A', y='B', legend=False, ax=ax)
plt.show() # If not in ipython

Upvotes: 4

Vaishali
Vaishali

Reputation: 38415

Pretty much the same solution as @DYZ. Still posting as I had already tried this.

ax = df.iloc[:3, [0,1]].plot('A', 'B')
df.iloc[3:6, [0,1]].plot('A', 'B',ax = ax)
df.iloc[6:9, [0,1]].plot('A', 'B',ax = ax)

Essentially they are three plots but on the same axis so they overlap.

Upvotes: 3

Related Questions