前提・実現したいこと
pythonのmatplotlibを利用して、空間分布の可視化を行おうとしています。
以下のxlsファイル、
|列1|列2|列3|
|x | y |value|
|81 |112|0.956325306|
|105|115|0.620349646|
|77 |123|0.993263811|
|71 |126|0.706593227|
|144|139|0.047904566|
|178|39 |0.844650108|
|86 |143|0.95998328|
|173|144|0.918311221|
|147|147|0.684566514|
|208|152|0.679854253|
|166|153|0.129928102|
|209|160|0.35165255|
|151|165|0.841688879|
|215|174|0.186048993|
|184|195|0.980654919|
からデータを読み込み、'value'に該当する列データを基に各点を色分けしようとしたところ、以下のようなエラーメッセージが発生しました。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "graph1.py", line 22, in <module> img=ax.scatter(x,y,s=15,c =value,cmap=cm.gist_rainbow_r, vmin=0.000000, vmax=1.000000) File "C:\Users\A\AppData\Local\Programs\Python\Python37-32\lib\site-packages\matplotlib\__init__.py", line 1810, in inner return func(ax, *args, **kwargs) File "C:\Users\A\AppData\Local\Programs\Python\Python37-32\lib\site-packages\matplotlib\axes\_axes.py", line 4253, in scatter .format(c) ValueError: 'c' argument must either be valid as mpl color(s) or as numbers to be mapped to colors. Here c = value 0 0.956325 1 0.620350 2 0.993264 3 0.706593 4 0.047905 5 0.844650 6 0.959983 7 0.918311 8 0.684567 9 0.679854 10 0.129928 11 0.351653 12 0.841689 13 0.186049 14 0.980655.
該当のソースコード
Python3
1#coding: utf-8 2import pandas as pd 3from matplotlib import pyplot 4from matplotlib import cm 5 6filepath = 'C:\Users\A\Desktop\Book.xls' 7df = pd.read_excel(filepath) 8 9x=df.loc[:,['x']] 10y=df.loc[:,['y']] 11value =df.loc[:,['value']] 12fig = pyplot.figure() 13ax = fig.add_subplot(1,1,1) 14ax.set_yscale('linear') 15 16ax.set_ylim(0,1) 17ax.set_xlim(0,1) 18 19ax.set_title('Day 1.5') 20ax.set_xlabel('X-axis(mm)') 21ax.set_ylabel('Y-axis(mm)') 22img=ax.scatter(x,y,s=15,c =value,cmap=cm.gist_rainbow_r, vmin=0.000000, vmax=1.000000) 23pyplot.colorbar(img) 24 25 26pyplot.show() 27pyplot.savefig('graph1,png')
試したこと
x,y,valueの各値を乱数に置き換えたところ、想定したグラフが表示されることを確認しています。そのため、xlsファイルからの値取得に何らかの問題があると思われますが、具体的にどういった問題なのかは現状判明しておりません。
どなたかご回答いただければ幸いです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/30 15:39