ホームページ >バックエンド開発 >Python チュートリアル >Python ビジュアライゼーション | Python ビジュアライゼーションの高度な基礎 - Plotly
Plotly は非常に有名で強力なオープン ソース データ視覚化フレームワークであり、ブラウザーの表示に基づいてインタラクティブな Web フォームを構築します。情報を表示し、多数の美しいチャートや地図を作成します。
Plotly で画像を描画するには、オンラインとオフラインの 2 つの方法があります。描画にはAPIキーを取得するためのアカウント登録が必要で面倒なので、本記事ではオフラインでの描画方法のみ紹介します。
オフライン描画には、plotly.offline.plot() と、plotly.offline.iplot() の 2 つのメソッドがあり、前者は、現在の作業ディレクトリに HTML 形式の画像ファイルをオフラインで生成します。 . そして自動的に開きます;
後者は、生成されたグラフィックスを ipynb ファイルに埋め込む jupyter Notebook の特別なメソッドです。この記事では後者の方法を採用しています (jupyter Notebook では、plotly が使用されていることに注意してください)。 offline.iplot() を使用する場合は、描画コードの初期化を完了する前に、plotly.offline.init_notebook_mode() を実行する必要があります。そうしないと、エラーが報告されます。
plotly.offline.iplot() の主なパラメータは次のとおりです:
import plotly import plotly.graph_objs as go '''初始化jupyter notebook中的绘图模式''' plotly.offline.init_notebook_mode() '''绘制一个基本的折线图,控制其尺寸为1600x600''' plotly.offline.iplot([{'x': [1, 2, 3], 'y': [5, 2, 7]}], image_height=600, image_width=1600)
##2.2 グラフ オブジェクト
関連するヘルプ マニュアルをクエリすると、次の結果が得られます。
Help on package plotly.graph_objs in plotly: NAME plotly.graph_objs DESCRIPTION graph_objs ========== This package imports definitions for all of Plotly's graph objects. For more information, run help(Obj) on any of the following objects defined here. The reason for the package graph_objs and the module graph_objs is to provide a clearer API for users. PACKAGE CONTENTS _area _bar _box _candlestick _carpet _choropleth _cone _contour _contourcarpet _deprecations _figure _figurewidget _frame _heatmap _heatmapgl _histogram _histogram2d _histogram2dcontour _layout _mesh3d _ohlc _parcoords _pie _pointcloud _sankey _scatter _scatter3d _scattercarpet _scattergeo _scattergl _scattermapbox _scatterpolar _scatterpolargl _scatterternary _splom _surface _table _violin area (package) bar (package) box (package) candlestick (package) carpet (package) choropleth (package) cone (package) contour (package) contourcarpet (package) graph_objs graph_objs_tools heatmap (package) heatmapgl (package) histogram (package) histogram2d (package) histogram2dcontour (package) layout (package) mesh3d (package) ohlc (package) parcoords (package) pie (package) pointcloud (package) sankey (package) scatter (package) scatter3d (package) scattercarpet (package) scattergeo (package) scattergl (package) scattermapbox (package) scatterpolar (package) scatterpolargl (package) scatterternary (package) splom (package) surface (package) table (package) violin (package) DATA absolute_import = _Feature((2, 5, 0, 'alpha', 1), (3, 0, 0, 'alpha', 0... FILE d:anacondalibsite-packagesplotlygraph_objs__init__.pygraph_objs には多くのグラフィック オブジェクトが含まれていることがわかります。この記事では、一般的なもののいくつかも選択します。使用したものを紹介します。
2.3 トレースの構築
最初に、より基本的な散布図を描画しましょう画像をクリックしてください:
import plotly import plotly.graph_objs as go import numpy as np '''构造1000个服从二维正态分布的模拟数据''' N = 1000 random_x = np.random.randn(N) random_y = np.random.randn(N) '''构造trace,配置相关参数''' trace = go.Scatter( x = random_x, y = random_y, mode = 'markers' ) '''将trace保存于列表之中''' data = [trace] '''启动绘图''' plotly.offline.init_notebook_mode() plotly.offline.iplot(data, filename='basic-scatter')
上記の簡単な例から、トレース作成の一般的な方法がわかり、次のように複数のトレースを 1 つの画像に重ね合わせることができます。次の例:
import numpy as np import plotly import plotly.graph_objs as go '''创建仿真数据''' N = 100 random_x = np.linspace(0, 1, N) random_y0 = np.random.randn(N)+5 random_y1 = np.random.randn(N) random_y2 = np.random.randn(N)-5 '''构造trace0''' trace0 = go.Scatter( x = random_x, y = random_y0, mode = 'markers', name = 'markers' ) '''构造trace1''' trace1 = go.Scatter( x = random_x, y = random_y1, mode = 'lines+markers', name = 'lines+markers' ) '''构造trace2''' trace2 = go.Scatter( x = random_x, y = random_y2, mode = 'lines', name = 'lines' ) '''将所有trace保存在列表中''' data = [trace0, trace1, trace2] '''启动绘图''' plotly.offline.init_notebook_mode() plotly.offline.iplot(data, filename='scatter-mode')
graph_obj が異なると、トレース設定形式も異なります。
2.4 レイアウトの定義
2.4.1 テキスト
テキストは画像の非常に重要な部分であり、プロットです。 APP の描画メカニズムは、画像内のテキストを慎重に分割し、非常に的を絞った方法で特定のコンポーネント部分のフォントをカスタマイズできます:
グローバル テキスト:
下面是一个简单的例子:
import plotly import plotly.graph_objs as go import numpy as np '''构造1000个服从二维正态分布的模拟数据''' N = 1000 random_x = np.random.randn(N) random_y = np.random.randn(N) '''构造trace,配置相关参数''' trace = go.Scatter( x = random_x, y = random_y, mode = 'markers' ) '''将trace保存于列表之中''' data = [trace] '''创建layout对象''' layout = go.Layout(title='测试', font={ 'size':22, 'family':'sans-serif', 'color':'9ed900'#将全局字体颜色设置颜色为葱绿 }) '''将graph部分和layout部分组合成figure对象''' fig = go.Figure(data=data, layout=layout) '''启动绘图直接绘制figure对象''' plotly.offline.init_notebook_mode() plotly.offline.iplot(fig,filename='basic-scatter')
标题文字:
下面是一个简单的例子:
import plotly import plotly.graph_objs as go import numpy as np '''构造1000个服从二维正态分布的模拟数据''' N = 1000 random_x = np.random.randn(N) random_y = np.random.randn(N) '''构造trace,配置相关参数''' trace = go.Scatter( x = random_x, y = random_y, mode = 'markers' ) '''将trace保存于列表之中''' data = [trace] '''创建layout对象''' layout = go.Layout(title='测试', titlefont={ 'size':20, 'color':'9ed900'#将标题字体颜色设置颜色为葱绿 }) '''将graph部分和layout部分组合成figure对象''' fig = go.Figure(data=data, layout=layout) '''启动绘图直接绘制figure对象''' plotly.offline.init_notebook_mode() plotly.offline.iplot(fig,filename='basic-scatter')
2.4.2 坐标轴
下面是几个简单的示例。
1. 对横纵坐标轴标题字体进行修改。
import plotly import plotly.graph_objs as go import numpy as np '''构造1000个服从二维正态分布的模拟数据''' N = 1000 random_x = np.random.randn(N) random_y = np.random.randn(N) '''构造trace,配置相关参数''' trace = go.Scatter( x = random_x, y = random_y, mode = 'markers' ) '''将trace保存于列表之中''' data = [trace] '''创建layout对象,对横纵坐标轴的标题进行一定的设置''' layout = go.Layout(xaxis={ 'title':'这是横坐标轴', 'titlefont':{ 'size':30 } },yaxis={ 'title':'这是纵坐标轴', 'titlefont':{ 'size':40 } }) '''将graph部分和layout部分组合成figure对象''' fig = go.Figure(data=data, layout=layout) '''启动绘图直接绘制figure对象''' plotly.offline.init_notebook_mode() plotly.offline.iplot(fig,filename='basic-scatter')
2. 对横纵方向的坐标轴线条及网格进行设置
import plotly import plotly.graph_objs as go import numpy as np '''构造1000个服从二维正态分布的模拟数据''' N = 1000 random_x = np.random.randn(N) random_y = np.random.randn(N) '''构造trace,配置相关参数''' trace = go.Scatter( x = random_x, y = random_y, mode = 'markers' ) '''将trace保存于列表之中''' data = [trace] '''创建layout对象,对横纵坐标轴的线条及网格颜色进行一定的设置''' layout = go.Layout(xaxis={ 'showline':False, 'showgrid':True, 'zeroline':False, 'showgrid':True, 'gridcolor':'7fecad' },yaxis={ 'showline':False, 'showgrid':True, 'gridcolor':'#3d3b4f', 'zeroline':False }) '''将graph部分和layout部分组合成figure对象''' fig = go.Figure(data=data, layout=layout) '''启动绘图直接绘制figure对象''' plotly.offline.init_notebook_mode() plotly.offline.iplot(fig,filename='basic-scatter')
2.4.3 图例
下面是一个简单的例子。
将图例的位置挪动到图像中心,即百分比上(0.5,0.5)的位置:
import numpy as np import plotly import plotly.graph_objs as go '''创建仿真数据''' N = 100 random_x = np.linspace(0, 1, N) random_y0 = np.random.randn(N)+5 random_y1 = np.random.randn(N) random_y2 = np.random.randn(N)-5 '''构造trace0''' trace0 = go.Scatter( x = random_x, y = random_y0, mode = 'markers', name = 'markers' ) '''构造trace1''' trace1 = go.Scatter( x = random_x, y = random_y1, mode = 'lines+markers', name = 'lines+markers' ) '''构造trace2''' trace2 = go.Scatter( x = random_x, y = random_y2, mode = 'lines', name = 'lines' ) '''将所有trace保存在列表中''' data = [trace0, trace1, trace2] '''构造layout对象,对图例位置进行一定的设置''' layout = go.Layout(legend={ 'x':0.5, 'y':0.5 }) '''构造figure对象''' fig = go.Figure(data=data,layout=layout) '''启动绘图''' plotly.offline.init_notebook_mode() plotly.offline.iplot(fig, filename='scatter-mode')
2.4.4 其它杂项
以上がPython ビジュアライゼーション | Python ビジュアライゼーションの高度な基礎 - Plotlyの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。