単一の列であるテキストファイルからデータをロードしています。私はこのデータを散布図にしたいが、私は1つの軸(ロードされたデータ)しか持っていない。私の他の軸では、読み込まれたすべての値に一致する値が得られるまでカウントアップするだけです(つまり、0,1,2,3,4,5、...)。散布図では、軸を自動入力したい
ありがとうあらかじめ!
単一の列であるテキストファイルからデータをロードしています。私はこのデータを散布図にしたいが、私は1つの軸(ロードされたデータ)しか持っていない。私の他の軸では、読み込まれたすべての値に一致する値が得られるまでカウントアップするだけです(つまり、0,1,2,3,4,5、...)。散布図では、軸を自動入力したい
ありがとうあらかじめ!
はシリーズs
に割り当てられたデフォルトのインデックスは1
少ないシリーズの長さに0
なりますtxt
from io import StringIO
import pandas as pd
txt = """4
5
2
6
1
4
3
6
2
7"""
s = pd.read_csv(StringIO(txt), header=None, squeeze=True)
サンプルファイルを考えてみましょう。インデックスをリセットして、それをデータフレームに入れてプロットすることができます。
s.reset_index(name='x').plot.scatter('x', 'index')
私は 'txt'がどのようにグラフに表示されるのか、少し失っています。いくつかの 'x'ラベルには複数の' y'データがあり、それ以外のラベルにはありません。 'x = 4'の場合、' y = 0'と 'y = 5'の両方の値を生成していますか? – roganjosh
@roganjosh私たちは '(0、4)'と '(5、4)'の両方をプロットします。なぜなら、 '4'はゼロのインデックス位置と5番目のインデックス位置です。 – piRSquared
ああ、意味がある。私が頭に入れていた質問から、OPは読み込まれたすべての値に対して一意のインデックスを求めていただけです(このような場合、グラフの有用性はわかりません)。問題は特に明確ではない。 – roganjosh
のNO xデータが指定されていない場合matplotlibのは自動的にYデータのインデックスを使用します。だから、単にあなたはそれを自分で作成することができ、プロット関数にpyplot.plot(data)
import io
import numpy as np
import matplotlib.pyplot as plt
csv = u"13.7\n12.4\n10.1\n7.4\n3.7\n9.4\n8.2"
a = np.loadtxt(io.StringIO(csv))
plt.plot(a, marker="o", ls="")
plt.xlabel("index")
plt.ylabel("data")
plt.show()
あなたのデータ配列を供給することができます。 'x_axis = range(len(y_axis_data))'です。 – roganjosh