2017-03-16 18 views
0

私はPythonプロジェクトのためにPython 3とJupyter Notebookを使用しています。 Matplotlibを使用して、この特別なグラフタイプをPythonでどのように達成できますか?

は、私は、以下のリンクに記載されたチャートに出くわした:

Matplotlib Chart

が、私は自分のデータと同様のものを作成したいが、私はそうするようにコードを見つけるのに苦労しています。 x軸にカテゴリ値があっても、このグラフは散布図ですか?または、私は後に何を達成するために別のグラフタイプを使用する必要がありますか?

私の現在の散布図のコードは次のようになります。コードの上

x = mySelectedData['Leisure Per GN'] 
y = mySelectedData['Spa Per GN'] 
fig, ax = plt.subplots(figsize=(8, 4)) 
colors = 'blue' 
size = 250 #(10 + np.random.rand(num_points) * 10) ** 2 
ax.scatter(x, y, s=size, c=colors, alpha=0.5) 
fig.suptitle('CY 2015 - CY 2016:Leisure Per Gn versus Spa Per Gn') 

は、x yの両方として正常に動作しますが数値です。

x = mySelectedData['Market'] 
y = mySelectedData['Leisure Per GN'] 

fig, ax = plt.subplots(figsize=(8, 4)) 
colors = 'green' 
size = 250 #(10 + np.random.rand(num_points) * 10) ** 2 
ax.scatter(x, y, s=size, c=colors, alpha=0.5) 
fig.suptitle('Leisure Per Gn: UK v/s Germany (CY 2016 -CY 2017)') 

次の行のコードを実行している、Pythonは、次のエラーメッセージがスローされます:私は次のようにコードを変更した

ValueError: First argument must be a sequence 

私はそれが事実と関係していると思いますが、その「市場」カテゴリのデータです。

進歩上のアイデアはありますか?

答えて

0

私はちょうどあなたがそれを望むように間隔を取得するために、あなたのカテゴリデータに任意の数値を代入してみてください、そして、あなたのラベルを設定するには、このようなものを使用します。

import matplotlib.ticker as politicker 

#Add x ticks at specified intervals 
x_labels = ["foo", "bar"] 
label_locations = [0, 1, 2, 3] #chosen x locations 

loc = plticker.FixedLocator() 
ax1.xaxis.set_major_locator(loc) 
plt.xticks(x_labels, label_locations) 

そのように、あなたを」まだあなたのカテゴリーデータをプロットしていますが、Matplotlibは数値データをプロットしていると考えています。

+0

ありがとうございました。私はあなたの解決策を試してみましょう。しかし、私はX_labels = ["foo"、 "bar"]という行で少し混乱しています。これを私の文脈に置くと、次のようになるはずです:X_labels = mySelectedData ['Market'];あれは正しいですか? また、後で "loc = plticker.FixedLocator()"を使用しているので、 "import matplotlib.ticker as politicker"という行は "import matplotlib.ticker as plticker"と読み替えるべきではありませんか? – user3115933

関連する問題