Plotly는 매우 유명하고 강력한 오픈 소스 데이터 시각화 프레임워크로 웹 형식의 브라우저 표시를 기반으로 대화형 차트를 작성하여 정보를 표시하고 수십 개의 정교한 차트와 지도를 만들 수 있습니다.
Plotly에서 이미지를 그리는 방법에는 온라인과 오프라인 두 가지가 있습니다. 온라인 그리기에서는 API 키를 얻기 위해 계정을 등록해야 하기 때문에 더 번거롭습니다. 그래서 이번 글에서는 오프라인 드로잉 방법만을 소개합니다.
오프라인 그리기에는 두 가지 방법이 있습니다:plotly.offline.plot() 및ploly.offline.iplot(). 전자는 오프라인 방식으로 현재 작업 디렉터리에 html 형식의 이미지 파일을 생성하고 자동으로 엽니다.
후자는 생성된 그래픽을 ipynb 파일에 삽입하는 jupyter 노트북의 전용 방법입니다. 이 기사에서는 후자의 방법을 사용합니다(jupyter 노트북에서plotly.offline.iplot()을 사용할 때 그리기 코드 초기화를 완료하려면 플롯리.오프라인.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)
plotly의 graph_objs는plolly의 하위 모듈이며,plolly로 가져오는 데 사용됩니다. 모든 그래픽 객체에 대해 해당 그래픽 객체를 가져온 후 표시해야 하는 데이터에 따라 그래프 객체를 정의할 수 있습니다. 그리고 사용자 정의된 그래픽 사양 매개변수를 지정한 다음 최종 프리젠테이션을 위해 이를 플롯리.offline.iplot()에 입력합니다.
관련 도움말 매뉴얼을 쿼리하여 다음과 같은 결과를 얻습니다.
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
graph_objs에 매우 풍부한 내용이 포함되어 있음을 알 수 있습니다. 그래픽 개체 집합 이 문서에서는 일반적으로 사용되는 개체 중 일부를 선택하여 소개합니다.
그리기 요구 사항에 따라 graph_objs에서 해당 obj를 가져온 후 수행해야 할 다음 작업은 표시할 데이터를 기반으로 지정된 obj에 대한 관련 매개 변수를 구성하는 것입니다. 플롯 트레이스 구성(트레이스 생성), 이 부분을 이해하는 데 도움이 되는 두 가지 간단한 예가 있습니다.
먼저, 보다 기본적인 산점도를 그려 보겠습니다.
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')
위의 간단한 예에서 볼 수 있듯이, 일반적인 생성 방법과 여러 개의 추적을 다음 예와 같이 하나의 그래프에 중첩할 수 있습니다.
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가 다르면 추적 구성 형식도 다릅니다.
plotly에서 이미지의 레이어 요소는 기본 배경, 좌표축 등과 독립적입니다. 앞서 소개한 내용을 통해 이미지를 그리는 데 필요한 객체를 정의한 후 직접 그릴 수 있습니다. , 그러나 배경 레이어에 더 많은 사용자 정의 내용을 적용하려면 Layout() 개체를 정의해야 합니다. 주요 매개 변수는 다음과 같습니다. 다양한 설정 개체에 따라 여러 부분으로 나누어 예제를 통해 별도로 설명합니다. :
2.4.1 텍스트
텍스트는 그림의 매우 중요한 부분입니다. Plotly의 강력한 그리기 메커니즘은 그림의 텍스트를 신중하게 나누고 개인 설정을 위해 특정 구성 요소에 매우 적합할 수 있습니다.
전체 텍스트:
下面是一个简单的例子:
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 시각화 고급 필수 사항 - 플롯의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!