I want to be able to display rates for each hotel in the form of a bar graph, similar to kayak and hipmunks price graph for flight search.
That's a much more complicated question than it appears to be, as there are multiple sources which will get you some of the inventory, but nothing which will get you all of the inventory. If you look at an OTA, they are pulling from typical sources like SABRE or Amadeus, but also from what is in effect their own inventory, where hotels are either going in via an extranet or there's some kind of direct-connect to the system the hotel is operating on (which could be one of many, including none at all). In fact, some of the OTA's make that proprietary inventory available too, via an API and on a commissionable sales basis. There's just no one-size-fits-all access point - especially when you consider that worldwide the hotel business is actually very un-aggregated with something like 80% of all hotel room capacity operated independently (that is to say, not branded or part of a chain like Starwood, Accor, IHG etc.). It's a big part of why OTA's have invested so heavily in technology to manage and distribute this type of inventory. It's not easily done as the technology used in the hospitality industry is often not great and it's unconsolidated to there's value and negotiating strength to be brought from consolidating it.
Based on your question, I would presume that you are relatively new to the travel technology space. Given that, my recommendation would be to go with the simplest approach and that is to use an online travel agency (OTA) API for pulling rates. Expedia's Affiliate network, for example, provides you with a nice API with rates and availability for their partner hotels. There is no cost for this except for your integration cost, of course. Once you prove your model and show some traction, you'll have a better chance of working out a better connectivity deal or even direct deals with the hotel brands. Remember that Hipmunk started out by using the Orbitz API for their flight data, so this is a totally valid way to start.