Rumah >pembangunan bahagian belakang >Tutorial Python >Visualisasi Python |. Visualisasi Python penting lanjutan - plotly
Plotly ialah rangka kerja visualisasi data sumber terbuka yang sangat terkenal dan berkuasa Ia membina borang web interaktif berdasarkan paparan penyemak imbas untuk memaparkan maklumat dan mencipta berpuluh-puluh carta dan peta yang cantik.
Terdapat dua cara untuk melukis imej dalam Plotly, dalam talian dan luar talian. Lukisan memerlukan pendaftaran akaun untuk mendapatkan kunci API, yang lebih menyusahkan, jadi artikel ini hanya memperkenalkan kaedah lukisan luar talian.
Lukisan luar talian mempunyai dua kaedah: plotly.offline.plot() dan plotly.offline.iplot() menjana fail imej format html dalam direktori kerja semasa secara luar talian dan secara automatik buka;
Kaedah khusus dalam buku nota jupyter, yang membenamkan grafik yang dijana ke dalam fail ipynb (), anda perlu menjalankan plotly.offline.init_notebook_mode() sebelum melengkapkan permulaan kod lukisan, jika tidak, ralat akan dilaporkan).
Parameter utama plotly.offline.iplot() adalah seperti berikut:
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 Objek graf
Tanya manual bantuan yang berkaitan dan dapatkan keputusan berikut:
Dapat dilihat bahawa objek graf yang terkandung dalam graph_objs sangat kaya Artikel ini juga akan memilih beberapa yang biasa digunakan untuk diperkenalkan.
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__.py
2.3 Membina jejak
Mula-mula, mari kita lukis plot serakan yang lebih asas. imej:
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')
Daripada contoh mudah di atas, anda boleh melihat cara umum untuk mencipta surih dan berbilang surih boleh ditindih pada satu gambar, seperti yang berikut contoh:
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')
Untuk graph_obj yang berbeza, format konfigurasi surih juga berbeza.
2.4 Tentukan Reka Letak
2.4.1 Teks
Teks ialah bahagian yang sangat penting dalam gambar, plotly sangat berkuasa Mekanisme lukisan Graf telah membahagikan teks dalam gambar dengan teliti dan boleh memperibadikan fon bahagian komponen tertentu dengan cara yang sangat disasarkan:
Teks global:
下面是一个简单的例子:
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 其它杂项
Di atas adalah bahagian asas lukisan plot Jika terdapat sebarang kesilapan silap, sila nyatakan.
Atas ialah kandungan terperinci Visualisasi Python |. Visualisasi Python penting lanjutan - plotly. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!