python Plotly绘图工具的简单使用

一、引言

Plotly是一款交互式绘图工具,可以用于绘制曲线图、散点图、直方图、等高线图等。它具有交互性、可视化性强,可以生成HTML、SVG、JSON等格式的图像文件。 使用Plotly可以将数据可视化呈现,帮助人们更好地理解数据本身和数据之间的关系。

本文将详细介绍如何使用Python的Plotly模块,实现数据可视化的功能。

二、安装Plotly模块

在开始使用Plotly绘图工具前,需要先安装相应的Python Plotly模块,在终端输入以下命令:

!pip install plotly

安装完成后,就可以开始使用了。

三、绘制线形图

1.准备数据

绘图前,我们需要准备数据。例如下面的代码给出了一组数据:

import numpy as np

x = np.linspace(0, 10, 100)

y = np.sin(x)

这里生成了100个点,x为0到10之间的均匀分布的数,y是对应的正弦值。

2.绘制基本图形

使用Plotly的方法很简单,下面的代码示例中,我们以y作为纵坐标,x作为横坐标,使用scatter()方法绘制了图形:

import plotly.graph_objs as go

trace0 = go.Scatter(x=x, y=y, mode='lines', name='sin(x)')

data = [trace0]

layout = go.Layout(title='Sin(x)')

fig = go.Figure(data=data, layout=layout)

fig.show()

上面的代码中,使用Scatter()函数创建散点图,其中,mode='lines'表示以线形式绘图。

data中是trace0数据,layout中含有标题信息,最后使用go.Figure将它们组合成一个图形。最后使用show()方法显示图形。

3.设置颜色、线宽等属性

我们可以通过修改Scatter()函数的参数,来改变绘图的样式,例如修改线颜色、线宽等属性。下面的示例代码中,我们将线颜色设置为红色,线宽设置为2:

trace0 = go.Scatter(x=x, y=y, mode='lines', name='sin(x)', 

line=dict(color='red', width=2))

4.添加标签和图例

在绘制图形时,我们可以给X、Y轴添加标签(单位):

layout = go.Layout(title='Sin(x)', xaxis=dict(title='x'), yaxis=dict(title='sin(x)'))

可以通过在Scatter()函数中设置name参数,为不同的曲线命名,这个名称将在图例中显示:

trace0 = go.Scatter(x=x, y=y, mode='lines', name='sin(x)')

trace1 = go.Scatter(x=x, y=0.5 * y, mode='lines', name='0.5*sin(x)')

data = [trace0, trace1]

layout = go.Layout(title='Sin(x)', xaxis=dict(title='x'), yaxis=dict(title='sin(x)'))

fig = go.Figure(data=data, layout=layout)

fig.show()

在这个例子中,我们又生成了一个trace1数据,并将其与trace0一起组合在一起,然后在图形中添加了图例。

四、绘制直方图

1.准备数据

绘制直方图,我们需要准备数据,例如下面的代码生成了一组数据:

import numpy as np

np.random.seed(1)

x = np.random.randn(500)

这里生成了500个随机正态分布的数据。

2.绘制基本图形

使用Plotly绘制直方图,我们可以使用make_subplots()函数来生成子图,然后使用go.Histogram()函数绘制直方图。例如下面的代码生成2x2的子图,绘制4个直方图:

import plotly.graph_objs as go

from plotly.subplots import make_subplots

fig = make_subplots(rows=2, cols=2, subplot_titles=("Histogram of x", "Histogram of x squared", "Histogram of x cubed", "Histogram of log(x)"))

fig.add_trace(go.Histogram(x=x, name='x'), row=1, col=1)

fig.add_trace(go.Histogram(x=x**2, name='x squared'), row=1, col=2)

fig.add_trace(go.Histogram(x=x**3, name='x cubed'), row=2, col=1)

fig.add_trace(go.Histogram(x=np.log(x), name='log(x)'), row=2, col=2)

fig.update_layout(title_text="Subplots")

fig.show()

在这个例子中,我们使用了subplot_titles()函数来为每个子图添加标题,使用make_subplots()函数创建子图的布局,然后使用add_trace()函数将数据添加到对应的子图中。

3.修改直方图属性

我们可以修改直方图的颜色、方向、直条数目等属性。例如下面的代码设置直方图的方向为水平,条形颜色为红色,直条数目为20:

trace1 = go.Histogram(x=x, nbinsx=20, histnorm='probability',

marker=dict(color='red'),

orientation='h')

data = [trace1]

layout = go.Layout(title='Histogram of x', xaxis=dict(title='Value'), yaxis=dict(title='Count'))

fig = go.Figure(data=data, layout=layout)

fig.show()

五、绘制等高线图

1.准备数据

为了绘制等高线图,我们需要准备二元函数的x、y、z值。例如下面的代码给出了一组数据:

import numpy as np

x = np.arange(-5, 5, 0.1)

y = np.arange(-5, 5, 0.1)

X, Y = np.meshgrid(x, y)

Z = np.sin(np.sqrt(X ** 2 + Y ** 2))

这里使用meshgrid()函数将x、y的所有组合进行处理,生成了一组z值(即sin(x^2+y^2))。

2.绘制基本图形

使用Plotly绘制等高线图,可以使用go.Contour()函数。例如下面的代码生成了一个等高线图:

import plotly.graph_objs as go

trace0 = go.Contour(z=Z, x=x, y=y)

data = [trace0]

fig = go.Figure(data=data)

fig.show()

在这个例子中,我们使用了Contour()函数创建等高线图。

3.修改等高线图属性

我们可以修改等高线图的大小、颜色、填充效果等属性。例如下面的代码中,我们将等高线图的颜色设置为黑色,线宽为1:

trace0 = go.Contour(z=Z, x=x, y=y, colorscale='Jet', line_width=1)

data = [trace0]

fig = go.Figure(data=data)

fig.show()

六、总结

通过本文的介绍,我们学习了使用Python Plotly模块绘图的基本方法,并且掌握了线形图、直方图、等高线图的绘制技巧。Plotly强大的交互性、可视化性,让数据的探索和分析更容易、更直观,是一款非常实用的绘图工具。

后端开发标签