# Plotting histograms, scatter plots in Python

Discussion in 'Python' started by Dr. Colombes, Aug 6, 2004.

1. ### Dr. ColombesGuest

What is the easiest way to generate some plots and graphs in Python ?

Specifically interested in simple histograms and scatter plots with
circles and regression lines.

Dr. Colombes, Aug 6, 2004

2. ### Fernando PerezGuest

Dr. Colombes wrote:

> What is the easiest way to generate some plots and graphs in Python ?
>
> Specifically interested in simple histograms and scatter plots with
> circles and regression lines.

hth,

f

Fernando Perez, Aug 6, 2004

3. ### Peter WilkinsonGuest

One module is Matplotlib, that seems to model the Matlab way of doing
things .... its at sourceforge.

Peter W.

At 02:18 PM 8/6/2004, Dr. Colombes wrote:
>What is the easiest way to generate some plots and graphs in Python ?
>
>Specifically interested in simple histograms and scatter plots with
>circles and regression lines.
>
>--
>http://mail.python.org/mailman/listinfo/python-list

Peter Wilkinson, Aug 6, 2004
4. ### John HunterGuest

>>>>> "Colombes" == Colombes <> writes:

Colombes> What is the easiest way to generate some plots and
Colombes> graphs in Python ? Specifically interested in simple
Colombes> histograms and scatter plots with circles and regression
Colombes> lines.

Here's a little example of a histogram and regression plot using
matplotlib - looks easy enough to me! Output image at
http://nitace.bsd.uchicago.edu:8080/files/share/demo.png

from matplotlib.matlab import *

x = randn(10000) # some gaussian noise

subplot(211) # a subplot
hist(x, 100) # make a histogram
grid(True) # make an axes grid
ylabel('histogram')

# now do the regression...
x = arange(0.0, 2.0, 0.05)
y = 2+ 3*x + 0.2*randn(len(x)) # y is a linear function of x + nse

# the bestfit line from polyfit
m,b = polyfit(x,y,1) # a line is 1st order polynomial...

# plot the data with blue circles and the best fit with a thick
# solid black line
subplot(212)
plot(x, y, 'bo', x, m*x+b, '-k', linewidth=2)
ylabel('regression')
grid(True)

# save the image to hardcopy
savefig('demo')
show()

John Hunter, Aug 6, 2004
5. ### Paramjit OberoiGuest

Paramjit Oberoi, Aug 6, 2004
6. ### Colin J. WilliamsGuest

Colin J. Williams, Aug 7, 2004
7. ### Paramjit OberoiGuest

>> Pychart:
>
> The charts look good, but the source code links fail.

Paramjit Oberoi, Aug 7, 2004
8. ### Fernando PerezGuest

Colin J. Williams wrote:

>
>
> Paramjit Oberoi wrote:
>>>What is the easiest way to generate some plots and graphs in Python ?

>>
>>
>> Pychart:
>> http://www.hpl.hp.com/personal/Yasushi_Saito/pychart/

>
> The charts look good, but the source code links fail.

I found it funny that the author makes a comment about poor PostScript quality
in Gnuplot, touting his as an alternative. If the examples on that page are to
be believed, that stuff looks like low-quality Excel-type business charts,
while Gnuplot has been producing publication quality EPS for a loooong time
(ask the many thousands of scientists using it since the early 90's).

I'd say that matplotlib is the _real_ contender to gnuplot today, not that toy
with horrible font scaling, no apparent real symbol/math support, ugly legend
boxes...

Best,

f

Fernando Perez, Aug 8, 2004
9. ### Guest

, Aug 9, 2004
10. ### Dr. ColombesGuest

John, Peter et al:

Thanks very much for your useful tips on MathPlotLib.

I've begun using MatPlotLib and I like it.

Others suggested GnuPlot, which I hope to try sometime in the
future.

Thanks all. This is a good example of very useful information
exchanged over an Internet newsgroup.

Dr. Colombes

John Hunter <> wrote in message news:<>...
> >>>>> "Colombes" == Colombes <> writes:

>
> Colombes> What is the easiest way to generate some plots and
> Colombes> graphs in Python ? Specifically interested in simple
> Colombes> histograms and scatter plots with circles and regression
> Colombes> lines.
>
> Here's a little example of a histogram and regression plot using
> matplotlib - looks easy enough to me! Output image at
> http://nitace.bsd.uchicago.edu:8080/files/share/demo.png
>
> from matplotlib.matlab import *
>
> x = randn(10000) # some gaussian noise
>
> subplot(211) # a subplot
> hist(x, 100) # make a histogram
> grid(True) # make an axes grid
> ylabel('histogram')
>
> # now do the regression...
> x = arange(0.0, 2.0, 0.05)
> y = 2+ 3*x + 0.2*randn(len(x)) # y is a linear function of x + nse
>
> # the bestfit line from polyfit
> m,b = polyfit(x,y,1) # a line is 1st order polynomial...
>
> # plot the data with blue circles and the best fit with a thick
> # solid black line
> subplot(212)
> plot(x, y, 'bo', x, m*x+b, '-k', linewidth=2)
> ylabel('regression')
> grid(True)
>
> # save the image to hardcopy
> savefig('demo')
> show()

Dr. Colombes, Aug 10, 2004
11. ### VParekh

Joined:
Dec 18, 2009
Messages:
1
Hi

I have plotted Histogram using plplot. Now I want to calculate each(or which) data point falling into each bin of the histogram. How can I do it?

Thanks

~VParekh

VParekh, Dec 18, 2009