TransWikia.com

Pandas plot - Range

Stack Overflow Asked by user13770492 on December 7, 2021

I have to plot something like this

enter image description here

data = {'begin': ['10', '15','17','25','7','8','16'],
        'end': ['15', '20', '20', '30', '15','10','19' ],
       'duration' :['5','5','3','5','8','2','3']}

I want the plot to contain the ‘begin’ and ‘end’ with respect to x – axis. so each and every line is a range(begin and end). Is there a way to plot this way in pandas?

One Answer

The graphs and data in your question don't match, but is the following what you want to do based on the data? We have not implemented adding the circles or anything else. Please try and see.

import pandas as pd

data = {'begin': ['10', '15','17','25','7','8','16'],
        'end': ['15', '20', '20', '30', '15','10','19' ],
       'duration' :['5','5','3','5','8','2','3']}

df = pd.DataFrame(data)

import matplotlib.pyplot as plt
import matplotlib.patches as patches

fig = plt.figure(figsize=(4,3),dpi=144)
ax = fig.add_subplot(111)

for index,row in df.iterrows():
#     print(index,row[0],row[1])
    r = patches.Rectangle(xy=(int(row[0]),int(index+1)), width=int(row[2]), height=0.4, ec='k', fc='k', fill=True)
    ax.add_artist(r)

ax.set_ylim(0,10)
ax.set_xlim(0,35)

enter image description here

Answered by r-beginners on December 7, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP