[Matplotlib-users] plot with marker color coded according to z-value

2012-10-19 Thread elmar werling
Hi,

is there a way to adjust the marker color in a xy-plot in relation to 
the value of a third parameter. Something as the following - not working 
- example 1.

Example 2 is working but rather slow for large arrays.

cheers
Elmar




# example 1

import matplotlib.pyplot as plt

x = [1,2,3,4]
y = x
c = ((1.0, 0.0, 0.0), (0.8, 0.1, 0.1), (0.6, 0.2, 0.6), (0.4, 0.3, 0.3))

plt.plot(x,y, color=c, marker='s')
plt.show()


example 2:

import matplotlib.pyplot as plt

x = [1,2,3,4]
y = x
c = ((1.0, 0.0, 0.0), (0.8, 0.1, 0.1), (0.6, 0.2, 0.6), (0.4, 0.3, 0.3))

for i in range(len(x)):
 plt.plot(x[i], y[i], color=c[i], marker='s')

plt.show()


--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] plot with marker color coded according to z-value

2012-10-19 Thread Joe Kington
That's what ``scatter`` is intended for.

Basically, you want something like:

plt.scatter(x, y, c=z, marker='s')
plt.colorbar()

Note that you can also vary the markers by size based on an additional
parameter, as well.

Have a look at this example:
http://matplotlib.org/examples/pylab_examples/scatter_demo.html

Hope that helps,
-Joe


On Fri, Oct 19, 2012 at 2:19 PM, elmar werling el...@net4werling.de wrote:

 Hi,

 is there a way to adjust the marker color in a xy-plot in relation to
 the value of a third parameter. Something as the following - not working
 - example 1.

 Example 2 is working but rather slow for large arrays.

 cheers
 Elmar




 # example 1

 import matplotlib.pyplot as plt

 x = [1,2,3,4]
 y = x
 c = ((1.0, 0.0, 0.0), (0.8, 0.1, 0.1), (0.6, 0.2, 0.6), (0.4, 0.3, 0.3))

 plt.plot(x,y, color=c, marker='s')
 plt.show()


 example 2:

 import matplotlib.pyplot as plt

 x = [1,2,3,4]
 y = x
 c = ((1.0, 0.0, 0.0), (0.8, 0.1, 0.1), (0.6, 0.2, 0.6), (0.4, 0.3, 0.3))

 for i in range(len(x)):
  plt.plot(x[i], y[i], color=c[i], marker='s')

 plt.show()



 --
 Everyone hates slow websites. So do we.
 Make your web apps faster with AppDynamics
 Download AppDynamics Lite for free today:
 http://p.sf.net/sfu/appdyn_sfd2d_oct
 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] plot with marker color coded according to z-value

2012-10-19 Thread elmar werling
thanks for help,

finally I found the following solution

elmar


import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

N = 200
x = np.linspace(0,1,N)
y = np.random.randn(N)
z = np.random.randn(N)*2+5

cm = mpl.cm.get_cmap('RdYlBu')
sc = plt.scatter(x, y, c=z, vmin=min(z), vmax=max(z), s=35, cmap=cm)
plt.colorbar(sc)

plt.show()



Am 19.10.2012 21:59, schrieb Joe Kington:
  plt.scatter(x, y, c=z, marker='s')
  plt.colorbar()



--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] plot with marker color coded according to z-value

2012-10-19 Thread Daπid
On Fri, Oct 19, 2012 at 11:08 PM, elmar werling el...@net4werling.de wrote:
 vmin=min(z), vmax=max(z)

A suggestion, when dealing with arrays, it is generally faster to use
the numpy function to compute the max and min, either np.max(z) or
z.max(), than the standard Python one.

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] plot with marker color coded according to z-value

2012-10-19 Thread Damon McDougall
On Fri, Oct 19, 2012 at 10:23 PM, Daπid davidmen...@gmail.com wrote:
 On Fri, Oct 19, 2012 at 11:08 PM, elmar werling el...@net4werling.de wrote:
 vmin=min(z), vmax=max(z)

 A suggestion, when dealing with arrays, it is generally faster to use
 the numpy function to compute the max and min, either np.max(z) or
 z.max(), than the standard Python one.

Correct me if I'm wrong, but I don't even think you need them. I think
the default cmap behaviour is to normalise to the min and max of the
data.

-- 
Damon McDougall
http://www.damon-is-a-geek.com
B2.39
Mathematics Institute
University of Warwick
Coventry
West Midlands
CV4 7AL
United Kingdom

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] plot with marker color coded according to z-value

2012-10-19 Thread elmar werling
Am 19.10.2012 23:26, schrieb Damon McDougall:
 Correct me if I'm wrong, but I don't even think you need them. I think
 the default cmap behaviour is to normalise to the min and max of the
 data.

yes, default cmap behaviour will normalise to the min and max of the
data.



--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users