2012-05-25 1 views
6

私はPythonとCSVファイルを使用しています。私は現在、私のcsvファイルの3番目の列に基づいて色を変更するために、以下の散布図(2d)を変更しようとしています。複数の投稿を検索した後は、基本的にジェネリックカラーマップ(虹)を使用して、3番目の配列にカラーマップを掛けて、各xyポイントに異なる色を表示したいと考えています。私はax.scatter関数からすべてを行うことができると思いますが、カラーマップと3番目の配列番号でそれぞれ異なるx、y座標を乗算する方法がわかりません。それは等高線プロットに似ているはずですが、私は別の色付き散布図が好きです。ここでcsvファイルの3番目の配列に基づいて色を表示するには2dスキャッタプロットを変更するにはどうすればよいですか?

は、私が使用していますコードです:

import matplotlib 
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas  
from matplotlib.figure import Figure 
import matplotlib.mlab as mlab 
import numpy as np 

r = mlab.csv2rec('test.csv') 
fig = Figure(figsize=(6,6)) 
canvas = FigureCanvas(fig) 

ax = fig.add_subplot(111) 
ax.set_title("X vs Y AVG",fontsize=14) 
ax.set_xlabel("XAVG",fontsize=12) 
ax.set_ylabel("YAVG",fontsize=12) 
ax.grid(True,linestyle='-',color='0.75') 

x = r.xavg #first column 
y = r.yavg #second column 
z = r.wtr #third column 

ax.scatter(x,y,s=.2,c='b', marker = ',', cmap = ?); 

答えて

10

チェックアウト散布ラインを

import matplotlib.pyplot as plt 
from matplotlib import cm 
import numpy as np 

fig = plt.figure(figsize=(6,6)) 
ax = fig.add_subplot(111) 
ax.set_title("X vs Y AVG",fontsize=14) 
ax.set_xlabel("XAVG",fontsize=12) 
ax.set_ylabel("YAVG",fontsize=12) 
ax.grid(True,linestyle='-',color='0.75') 
x = np.random.random(30) 
y = np.random.random(30) 
z = np.random.random(30) 

# scatter with colormap mapping to z value 
ax.scatter(x,y,s=20,c=z, marker = 'o', cmap = cm.jet); 

plt.show() 

、それは

enter image description here

+0

は私に答えている、どうもありがとうございまし生成します質問。カラーマップを変更するには、他のドキュメントに従うことができます。また、キャンバスアイテムをコードに残して、画像を保存するために以下のコードを使用できるようにしました。 'canvas.print_figure(' test.png '、dpi = 250)' – Jonny

+0

@ジョニーあなたは必ずしも必要ではありませんあなたの数字を保存するキャンバスオブジェクトは、[savefig](http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.savefig)を使うことができます。 – nye17

+0

真、真。フィードバックありがとう – Jonny

関連する問題