介绍
plotly是一个易于使用,功能强大的python绘图库,用于构建可交互式的图表(可以自行运行后使用鼠标拖拽图片试试),本系列文章将介绍plotly绘制各种类型图的方法,本文将介绍——折线图
折现图
基础折线图
代码解释
-
df = px.data.gapminder().query("country=='Canada'")
这一行代码首先调用px.data.gapminder()获取了一个内置的示例数据集gapminder,这个数据集包含了多个国家多年的经济和健康指标。然后,使用.query()方法对这个数据集进行筛选,只保留与加拿大相关的数据行。这里的查询语句"country==‘Canada’"意味着选择数据集中country列值为"Canada"的行。 -
fig = px.line(df, x="year", y="lifeExp", title='Life expectancy in Canada')
这一行代码使用px.line()函数创建了一个折线图。df是之前筛选出的加拿大数据集,x="year"指定了横轴变量为year,即年份,y="lifeExp"指定了纵轴变量为lifeExp,即预期寿命。title='Life expectancy in Canada’为图表设置了标题,表明这个图表展示的是加拿大的预期寿命随时间的变化。
import plotly.express as px
df = px.data.gapminder().query("country=='Canada'")
fig = px.line(df, x="year", y="lifeExp", title='Life expectancy in Canada')
fig.show()
具有列编码颜色的线条图
代码解释
-
df = px.data.gapminder().query("continent=='Oceania'")
这一行代码首先调用px.data.gapminder()获取了一个内置的示例数据集gapminder,这个数据集包含了多个国家多年的经济和健康指标。然后,使用.query()方法对这个数据集进行筛选,只保留与大洋洲相关的数据行。这里的查询语句"continent==‘Oceania’"意味着选择数据集中continent列值为"Oceania"的行,即筛选出大洋洲的国家。 -
fig = px.line(df, x="year", y="lifeExp", color='country')
这一行代码使用px.line()函数创建了一个折线图。df是之前筛选出的大洋洲国家数据集,x="year"指定了横轴变量为year,即年份,y="lifeExp"指定了纵轴变量为lifeExp,即预期寿命。color='country’参数指定了图表中每条折线的颜色应该根据country列的值(即国家)来区分,这样在图表中可以清楚地看到每个国家的数据。
import plotly.express as px
df = px.data.gapminder().query("continent=='Oceania'")
fig = px.line(df, x="year", y="lifeExp", color='country')
fig.show()
折线图中的数据顺序
代码解释
-
创建一个DataFrame:
使用pd.DataFrame()函数创建一个新的DataFrame对象,其中包含两个列x和y,每列都有四个数据点。这些数据点是无序的,即x和y的值没有按照任何特定的顺序排列。
创建第一个折线图: -
使用px.line()函数创建一个折线图,其中df是数据源,x="x"和y="y"分别指定了DataFrame中的x列和y列作为图表的横轴和纵轴数据。title="Unsorted Input"为图表设置了一个标题,表明这个图表展示的是未排序的输入数据。
调用fig.show()方法显示这个折线图。这会导致图表在用户的默认浏览器中渲染和显示。
对DataFrame进行排序: -
使用DataFrame的sort_values()方法按x列的值对DataFrame进行排序。by="x"参数指定了排序的列。排序后,x和y的值将按照x的升序排列。
创建第二个折线图: -
再次使用px.line()函数创建一个新的折线图,这次使用排序后的DataFrame。同样地,x="x"和y="y"指定了图表的横轴和纵轴数据,而title="Sorted Input"设置了新标题,表明这个图表展示的是排序后的输入数据。
调用fig.show()方法显示这个折线图。
import plotly.express as px
import pandas as pd
df = pd.DataFrame(dict(
x = [1, 3, 2, 4],
y = [1, 2, 3, 4]
))
fig = px.line(df, x="x", y="y", title="Unsorted Input")
fig.show()
df = df.sort_values(by="x")
fig = px.line(df, x="x", y="y", title="Sorted Input")
fig.show()
日期上的折线图
代码解释
-
df = px.data.stocks()
这一行代码调用了plotly.express模块中的px.data.stocks()函数,这个函数返回了一个内置的数据集,其中包含了多个主要科技公司的股票价格历史数据。这个数据集通常是以Pandas DataFrame的形式提供的,其中包含了日期、公司名称和股票代码等信息,以及对应的股票价格数据。 -
fig = px.line(df, x='date', y="GOOG")
这一行代码使用px.line()函数创建了一个折线图。df是之前获取的股票数据集。x='date’指定了横轴变量为date,即数据集中的日期列,代表了股票价格的时间点。y="GOOG"指定了纵轴变量为GOOG,即数据集中谷歌公司的股票价格列。这里,GOOG是谷歌公司的股票代码,我们通过这个代码来筛选出谷歌公司的股票价格数据,以便在图表中展示。
px.line()函数会根据指定的x和y参数,绘制出谷歌公司股票价格随日期变化的趋势线。由于这里没有指定其他参数,如颜色或线型,Plotly会使用默认的设置来渲染图表。
import plotly.express as px
df = px.data.stocks()
fig = px.line(df, x='date', y="GOOG")
fig.show()