Matplotlibによるデータグラフィックの描画(二)
Matplotlibによるデータグラフィックの描画(一)
Matplotlibの基本的な知識を知ってから、絵を試してみることができます.
まず、最も一般的な図形から始めます.折れ線図、ストライプ図、柱状図、散点図、円形図です.
このPartは実際には論理的な文法規定がないので、つまらないと言わざるを得ません.しかし、このPartが一番役に立ちます.見終わったらMatplotlibで絵を描くのが問題ないからです(図形の細部に何の要求もなければ~)
図形描画用データ
最近招商銀行の株価を予測する試合をしたので、一部の絵は直接このデータを使いました.
手を出す前にもっと話さなければならない.
Matplotlibを使用してデータグラフィックを描画するには(1)Matplotlibを使用して描画するには、少なくとも1つのfigを作成し、1つのaxesを含む必要があります.
しかし、次のような書き方もよくあります.
手動でfigとaxesを作成していないのにどうして図が出たのですか?答えは、pltの描画方法が呼び出されたが、pltがfigおよび/またはaxesを追跡していない場合、pltはデフォルトで新しいfigおよび/またはaxes(Matplotlibの2つのAPI)を作成します.
pltがfigとaxesを追跡するプロセスはユーザーにとってステルスであり、plt描画方法を呼び出すたびに、この描画効果が現在のaxesに現れることを知る必要があります(後でpltの現在のfigとaxesを手動で変更する方法について説明します)
OK, Matplotlib
折れ線図、棒グラフ、柱状図、散点図、円形図はそれぞれMatplotlibの5つの描画関数:plot()、bar()、hist()、scatter()、pie()に対応している.
ここで、
しかし、上の折れ線図には意味がありません.折れ線図は実際には時間系列が多く使われています.折れ線図は前後の内在的なつながりの変化を反映しているからです.
したがって、多くの場合、折れ線図x軸は時間であり、y軸はデータである.
しかし、デフォルトのタイムラインのほとんどは--使えません()です.
Matplotlibは、時間に関する問題を処理するための特別なモジュールmdatesを提供しています.
その中の各種のLocatorはもっぱら時間の目盛りを生成するために用います.だから時系列目盛りが自動的に使いにくいなら手動で23333.
コードは比較的簡単で、直接投げ出して、注釈を見ます:
折れ線グラフには、同じグラフに複数の異なる変数の変化曲線を描く一般的なシーンもあります.これはどうしますか.
現在のfigとaxesを切り替えずに、同じ図に描き続けます.
しかし、この方法もよくなく、データが1行1行増えて面倒になった.例えば、私は直接1枚の図に「open」、「high」、「low」、「close」の4つの変数を描きたいので、4行追加しなければなりません.
より良い方法は、この4つの変数を抽出することです.
Matplotlibは、yの各列のデータを自動的に同じ曲線として描画します.
それからみんなはまた来て、4つの図の色は区別して、私はどの色が誰を代表しているか知っていますか?次に例を追加します.
これで、実用的な意味があり、情報が正確な折れ線図が完成しました.
自分で使うとここまでは差がありませんが、レポートとして使える図を作りたいなら、美化の仕事がたくさんあります.
Ad Time
このシリーズが完成したら、微信公衆番号データ科学と技術(read_csv)で丹念に作られた漸進的なnotebookを発表します.注目してほしいです.
Matplotlibの基本的な知識を知ってから、絵を試してみることができます.
まず、最も一般的な図形から始めます.折れ線図、ストライプ図、柱状図、散点図、円形図です.
このPartは実際には論理的な文法規定がないので、つまらないと言わざるを得ません.しかし、このPartが一番役に立ちます.見終わったらMatplotlibで絵を描くのが問題ないからです(図形の細部に何の要求もなければ~)
図形描画用データ
最近招商銀行の株価を予測する試合をしたので、一部の絵は直接このデータを使いました.
import tushare as ts
pro = ts.pro_api('***********************')# *** tushare token
cmb = pro.daily(ts_code='600036.SH', start_date='20190301', end_date='20190510')
手を出す前にもっと話さなければならない.
Matplotlibを使用してデータグラフィックを描画するには(1)Matplotlibを使用して描画するには、少なくとも1つのfigを作成し、1つのaxesを含む必要があります.
fig,ax_1 = plt.subplots()
しかし、次のような書き方もよくあります.
手動でfigとaxesを作成していないのにどうして図が出たのですか?答えは、pltの描画方法が呼び出されたが、pltがfigおよび/またはaxesを追跡していない場合、pltはデフォルトで新しいfigおよび/またはaxes(Matplotlibの2つのAPI)を作成します.
pltがfigとaxesを追跡するプロセスはユーザーにとってステルスであり、plt描画方法を呼び出すたびに、この描画効果が現在のaxesに現れることを知る必要があります(後でpltの現在のfigとaxesを手動で変更する方法について説明します)
OK, Matplotlib
折れ線図、棒グラフ、柱状図、散点図、円形図はそれぞれMatplotlibの5つの描画関数:plot()、bar()、hist()、scatter()、pie()に対応している.
plt.plot([x],y) # x , y
plt.scatter(x,y)
plt.bar(x,height) # , height y
plt.hist(x)
plt.pie(x)
ここで、
.plot()
xは、1つの位置パラメータのみが入力される場合、関数のデフォルトユーザがyを入力し、xはシーケンス[0,1,2,3,4,...]をデフォルトとすることを意味する.yのデータにいちいち対応する.だから前に私が描いた図形は「open」の変数だけが入ってきたので大丈夫です.しかし、上の折れ線図には意味がありません.折れ線図は実際には時間系列が多く使われています.折れ線図は前後の内在的なつながりの変化を反映しているからです.
したがって、多くの場合、折れ線図x軸は時間であり、y軸はデータである.
plt.plot('trade_date','open',data = cmb)
しかし、デフォルトのタイムラインのほとんどは--使えません()です.
Matplotlibは、時間に関する問題を処理するための特別なモジュールmdatesを提供しています.
その中の各種のLocatorはもっぱら時間の目盛りを生成するために用います.だから時系列目盛りが自動的に使いにくいなら手動で23333.
コードは比較的簡単で、直接投げ出して、注釈を見ます:
import matplotlib.dates as mdates
months = mdates.MonthLocator() # ticker
days = mdates.DayLocator() # ticker
dateFmt = mdates.DateFormatter('%m-%d')
ax = plt.gca()# axes
datemin = np.datetime64('2019-03-10')#
datemax = np.datetime64('2019-05-10') + np.timedelta64(1) #
ax.set_xlim(datemin, datemax)#
ax.xaxis.set_major_locator(months) # ticker
ax.xaxis.set_major_formatter(dateFmt)
ax.xaxis.set_minor_locator(days) # ticker
plt.plot('trade_date','open',data = cmb)
plt.gcf().autofmt_xdate() # fig tick label
plt.show()
折れ線グラフには、同じグラフに複数の異なる変数の変化曲線を描く一般的なシーンもあります.これはどうしますか.
plt.plot('trade_date','close',data = cmb)
現在のfigとaxesを切り替えずに、同じ図に描き続けます.
しかし、この方法もよくなく、データが1行1行増えて面倒になった.例えば、私は直接1枚の図に「open」、「high」、「low」、「close」の4つの変数を描きたいので、4行追加しなければなりません.
より良い方法は、この4つの変数を抽出することです.
ohlc = cmb.loc[:,['open','high','low','close']].values
plt.plot(cmb['trade_date'].values,ohlc)
Matplotlibは、yの各列のデータを自動的に同じ曲線として描画します.
それからみんなはまた来て、4つの図の色は区別して、私はどの色が誰を代表しているか知っていますか?次に例を追加します.
plt.gca().legend(['open','high','low','close'])# plot y legend 。
これで、実用的な意味があり、情報が正確な折れ線図が完成しました.
自分で使うとここまでは差がありませんが、レポートとして使える図を作りたいなら、美化の仕事がたくさんあります.
Ad Time
このシリーズが完成したら、微信公衆番号データ科学と技術(read_csv)で丹念に作られた漸進的なnotebookを発表します.注目してほしいです.