Python データ分析を学んだ友人は、matplotlib、seaborn、plotly、Boken、pyecharts などの視覚化ツールに優れたサードパーティ ライブラリが多数あることを知っています。これらの可視化ライブラリには独自の特徴があり、実用的なアプリケーションで広く使用されています。
PlotlyやBokenなどはインタラクティブな可視化ツールであり、Jupyter Notebookと組み合わせることで非常に柔軟かつ便利に分析結果を表示することができます。プロットなどのエフェクトは非常にクールですが、毎回長いコードを記述する必要があるため、1 つは面倒で、もう 1 つはメンテナンスが容易ではありません。
データ分析の段階では、分析、ディメンションの選択、分解と結合、ビジネスの理解と判断にもっと時間を費やすべきだと思います。コードの量を減らし、クールな視覚化効果を作成できれば、効率が大幅に向上します。もちろん、特別なニーズがない限り、この方法は、迅速に視覚化して分析したい場合にのみ使用できます。
技術交流
テクノロジーは共有とコミュニケーションを学ぶ必要があり、密室で作業することはお勧めできません。1 人で速く進むこともできますし、グループでより遠くまで進むこともできます。
関連するファイルとコードがアップロードされており、コミュニケーション グループに追加することで入手できます。グループには 2,000 人以上のメンバーがいます。メモを追加する最良の方法は、ソース + 興味の方向です。これにより、同じ考えを持つ人を見つけるのに便利です友達。
方法①、WeChatアカウントを追加:dkl88194、備考:CSDNから+グループを追加
方法②、WeChat検索公式アカウント:Python学習とデータマイニング、バックグラウンド返信:グループを追加
この記事では、この問題を完全に解決できる優れたツール、カフリンクスを紹介します。その効果は同じくらいクールです。
カフスボタンの紹介
seaborn が matplotlib をカプセル化しているのと同じように、cufflinks は、統一されたメソッドとシンプルなパラメーター構成を備えた、plotly に基づいたさらなるパッケージを作成しました。2つ目は、pandasデータフレームと組み合わせて自由かつ柔軟に絵を描くことも可能です。**「パンダのような視覚化」** と表現できます。
たった 1 行のコードであらゆる種類のクールなビジュアル グラフィックを描画できると言っても過言ではありません。これは非常に効率的で、使用の敷居を下げます。
カフリンクスの github リンクは次のとおりです。
https://github.com/santosjorge/カフリンクス
カフスボタンの取り付け
インストールについては特に言うことはありません。直接 pip install するだけです。
pip install cufflinks
カフリンクスはどのように使用されますか?
カフス ライブラリは継続的に更新されており、最新バージョンは V0.14.0 で、plotly3.0 をサポートします。まず、サポートされているグラフィックの種類を見てみましょう。これはヘルプから確認できます。
import cufflinks as cf
cf.help()
Use 'cufflinks.help(figure)' to see the list of available parameters for the given figure.
Use 'DataFrame.iplot(kind=figure)' to plot the respective figure
Figures:
bar
box
bubble
bubble3d
candle
choroplet
distplot
heatmap
histogram
ohlc
pie
ratio
scatter
scatter3d
scattergeo
spread
surface
violin
使い方は実はとても簡単で、簡単にまとめるとこんな感じです。
-
DataFrame:パンダを表すデータ フレーム。
-
図:バー、ボックス、ヒストグラムなど、上で見た描画可能なグラフィックスを表します。
-
iplot:描画メソッドを表します。独自のスタイルに合わせてビジュアル グラフィックスを調整するために構成できるパラメータが多数あります。
カフスボタンのインスタンス
いくつかの例を使用して、上記の使用法を体験します。プロットを使用したことのある友人は、オンライン モードを使用すると、生成されるグラフィックスが制限されることを知っているかもしれません。したがって、数制限の問題を回避するために、最初にオフライン モードに設定します。
import pandas as pd
import cufflinks as cf
import numpy as np
cf.set_config_file(offline=True)
次に、上記の使用形式に従って操作する必要があります. まず、DataFrame を用意する必要があります. 手元にデータがない場合は、最初に乱数を生成できます。cufflinks には datagen と呼ばれる乱数を生成するメソッドがあり、次のような異なる次元のランダム データを生成するために使用されます。
折れ線グラフ
cf.datagen.lines(1,500).ta_plot(study='sma',periods=[13,21,55])
1) カフリンクスは datagen を使用して乱数を生成します。
2) 図は線の形式で定義され、データは (1,500) です。
3) 次に、ta_plot を使用してこの一連の時系列を描画し、パラメータを SMA に設定して 3 つの異なる期間のタイミング解析を表示します。
ボックスボックスプロット
上記の使用法と同じですが、1 行のコードで解決できます。
cf.datagen.box(20).iplot(kind='box',legend=False)
X 軸上の各ボックスには対応する名前があることがわかります。これは、カフリンクスが kind パラメーターを通じてボックスのグラフィックを認識し、その名前を自動的に生成するためです。乱数だけを生成するとこんな感じですが、デフォルトでは100行のランダム分散データが生成され、列数は自分で選択します。
ヒストグラム
cf.datagen.histogram(3).iplot(kind='histogram')
プロットと同様に、1 行のコードだけで、補助的な小さなツール ボックスの選択やなげなわ選択を通じて、指定された領域を区別して選択できます。
もちろん、ランダム データに加えて、自分でインポートしたデータを含め、他のデータフレームでも問題ありません。
ヒストグラム棒グラフ
df=pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
df.iplot(kind='bar',barmode='stack')
上記では (10,4) dataframe データ フレームを生成しました。名前は a、b、c、d です。その後、カフリンクスは ilot の種類タイプに応じてグラフィックを自動的に識別して描画します。パラメータはスタック モードに設定されます。
散布散布図
df = pd.DataFrame(np.random.rand(50, 4), columns=['a', 'b', 'c', 'd'])
df.iplot(kind='scatter',mode='markers',colors=['orange','teal','blue','yellow'],size=10)
バブルバブルチャート
df.iplot(kind='bubble',x='a',y='b',size='c')
散布行列 散布行列プロット
df = pd.DataFrame(np.random.randn(1000, 4), columns=['a', 'b', 'c', 'd'])
df.scatter_matrix()
サブプロット サブプロット
df=cf.datagen.lines(4)
df.iplot(subplots=True,shape=(4,1),shared_xaxes=True,vertical_spacing=.02,fill=True)
df.iplot(subplots=True,subplot_titles=True,legend=False)
別の例はもう少し複雑です。
df=cf.datagen.bubble(10,50,mode='stocks')
figs=cf.figures(df,[dict(kind='histogram',keys='x',color='blue'),
dict(kind='scatter',mode='markers',x='x',y='y',size=5),
dict(kind='scatter',mode='markers',x='x',y='y',size=5,color='teal')],asList=True)
figs.append(cf.datagen.lines(1).figure(bestfit=True,colors=['blue'],bestfit_colors=['pink']))
base_layout=cf.tools.get_base_layout(figs)
sp=cf.subplots(figs,shape=(3,2),base_layout=base_layout,vertical_spacing=.15,horizontal_spacing=.03,
specs=[[{
'rowspan':2},{
}],[None,{
}],[{
'colspan':2},None]],
subplot_titles=['Histogram','Scatter 1','Scatter 2','Bestfit Line'])
sp['layout'].update(showlegend=False)
cf.iplot(sp)
形状 形状マップ
ライン図に参照として直線を追加したい場合は、現時点では hlines タイプの図を使用できます。
df=cf.datagen.lines(3,columns=['a','b','c'])
df.iplot(hline=[dict(y=-1,color='blue',width=3),dict(y=1,color='pink',dash='dash')])
または、特定の領域をマークするには、hspan タイプを使用できます。
df.iplot(hspan=[(-1,1),(2,5)])
または、垂直バー領域では、vspan タイプを使用できます。
df.iplot(vspan={
'x0':'2015-02-15','x1':'2015-03-15','color':'teal','fill':True,'opacity':.4})
iplot のパラメータに慣れていない場合は、次のコードを直接入力してクエリを実行できます。
help(df.iplot)
要約する
どうですか、とても早くて便利だと思いませんか?上記の紹介は一般的なドローアブル タイプですが、もちろん、ニーズに応じてさらに視覚的なグラフィックを作成することもできます。通常のグラフであれば一行で実現できます。さらに、カフリンクスには強力なカラーマネジメント機能もあるので、興味があれば自分で学ぶこともできます。