利用Plotly绘制折线图
在学习笔记-Plotly的基本使用方式(二)介绍了plotly基本图像——散点图的绘制,所以今天呢继续介绍plotly基本图像——折线图的绘制,话不多说,直接冲冲冲!!!
1、基本折线图的绘制
在开始之前,先向各位小伙伴介绍一个Python的高级可视化库——plotly.express。plotly.express是一个新的高级Python可视化库:它是 Plotly.py 的高级封装,它为复杂的图表提供了一个简单的语法。
当我们在程序中导入plotly.express,大多数绘图只需要一个函数调用,接受一个整洁的Pandas dataframe,并简单描述你想要制作的图。如果你想要一个基本的折线图,其语法格式为: px.line(data,x =“column_name”,y =“column_name”)。
如下面所展示的绘图实例,利用内置的Gapminder数据集绘制折线图,显示加拿大人均预期寿命和时间之间的变化趋势:
import plotly.express as px
import plotly as py
df = px.data.gapminder().query("country=='Canada'")
fig = px.line(df, x="year", y="lifeExp", title='Life expectancy in Canada')
py.offline.plot(fig)
2、带有列编码颜色的折线图
如果你想通过国家来区分每条折线图,可以使用color参数选取相应的数据为每条折线图进行着色,并由plotly.express负责设置默认颜色,设置图例等。
示例1:澳大利亚和新西兰的人均预期寿命和时间之间的变化趋势对比图:
import plotly.express as px
import plotly as py
df = px.data.gapminder().query("continent=='Oceania'") #选取和大洋洲相关的国家数据
fig = px.line(df, x="year", y="lifeExp", color='country')
py.offline.plot(fig)
示例2:除亚洲外,其他四大洲的人均预期寿命和时间之间的变化趋势对比图:
import plotly.express as px
import plotly as py
df = px.data.gapminder().query("continent != 'Asia'") #排除和亚洲相关的数据
fig = px.line(df, x="year", y="lifeExp", color="continent",
line_group="country", hover_name="country")
py.offline.plot()
3、简单的点线图绘制
import plotly.graph_objects as go
import plotly as py
import numpy as np
x = np.arange(10)
fig = go.Figure(data=go.Scatter(x=x, y=x**2))
py.offline.plot(fig)
4、不同模式的折线图绘制
通过add_trace将普通折线图,点线图以及散点图绘制到同一图中。对于add_trace具体使用方式,会在后期的博客中进行介绍,这里就不过多说明。
示例1:
import plotly.graph_objects as go
import plotly as py
import numpy as np
np.random.seed(1)
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
fig = go.Figure()
fig.add_trace(go.Scatter(x=random_x, y=random_y0,
mode='lines',
name='lines'))
fig.add_trace(go.Scatter(x=random_x, y=random_y1,
mode='lines+markers',
name='lines+markers'))
fig.add_trace(go.Scatter(x=random_x, y=random_y2,
mode='markers', name='markers'))
py.offline.plot(fig)
示例2:
import plotly.graph_objects as go
import plotly as py
month = ['January', 'February', 'March', 'April', 'May', 'June', 'July',
'August', 'September', 'October', 'November', 'December']
high_2000 = [32.5, 37.6, 49.9, 53.0, 69.1, 75.4, 76.5, 76.6, 70.7, 60.6, 45.1, 29.3]
low_2000 = [13.8, 22.3, 32.5, 37.2, 49.9, 56.1, 57.7, 58.3, 51.2, 42.8, 31.6, 15.9]
high_2007 = [36.5, 26.6, 43.6, 52.3, 71.5, 81.4, 80.5, 82.2, 76.0, 67.3, 46.1