欢迎加入我们卧虎藏龙的python讨论qq群:729683466
导 语
久等啦
可视化系列可能会迟到但不会缺席
快拿出小本本记重点
前一期没掌握好的同学记得复习一下嗷
代码及相关资源获取
1、关注"python趣味爱好者"公众号,回复"plotly散点图1"
2、加入群聊:729683466,在群文件中下载源代码及相关资料。
开发工具
Jupyter Notebook
Plotly模块
往期精选
讲解部分
前言
上一期我们已经将plotly进行了简单的介绍,并举了一些例子;那么,从这一期开始,我们将正式进行plotly绘图的介绍。
本期我们介绍的是较为简单的散点图,它的样子相信大家应该都见过,大概就是下面这个样子:
但实际上,plotly绘制的散点图可不只是这个样子哦,它的花样可多了,保证能让你大开眼界~
在Plotly中,大部分的图都是可以通过两种方式绘制出来的,由于内容较多,所以本小节将只介绍第一种,第二种方式将在下一节介绍;
plotly.express.scatter()
官方大大称之为数据可视化的高级界面,也是比较常用的一种方法,现在我们就来看看它是怎么画图的,上代码:
import pandas as pd
import plotly.express as px
names = ["国家", "儿童死亡人数(每千人)", "商品和服务的人均出口", "人均卫生支出总额", "商品和服务的人均进口", "人均纯收入",
"通货膨胀", "平均寿命", "新生儿数量(每个母亲)", "人均国内生产总值"]
df = pd.read_csv("../data/Unsupervised Learning on Country Data/Country-data.csv",
header=0,
names=names)
fig = px.scatter(data_frame=df,
title="国家数据的无监督学习", # 图的标题
x="人均国内生产总值", # x轴
y="人均纯收入", # y轴
color="人均卫生支出总额", # 散点图的颜色
size="平均寿命", # 散点图的大小
hover_name="国家", # 悬停文本的标题
hover_data=["儿童死亡人数(每千人)",
"商品和服务的人均出口", "通货膨胀", "新生儿数量(每个母亲)"] # 悬停数据
)
fig.show()
这个段代码执行后所产生的图长这个样子:
是不是觉得这个散点图比上面那个好看多了,当然因为小编的水平也不高,所以这个图画的也不是很理想~但是这并不影响它的美观以及它所能表达的信息。
好了,那我们开始来介绍一下刚才写的这些代码:
import pandas as pd
这个是导入pandas库,用于数据处理的一个强大的第三方库,这里用来读取我们的数据。
import plotly.express as px
这个应该不用多解释了,导入我们需要画图的模块。
names = ["国家", "儿童死亡人数(每千人)", "商品和服务的人均出口", "人均卫生支出总额", "商品和服务的人均进口", "人均纯收入",
"通货膨胀", "平均寿命", "新生儿数量(每个母亲)", "人均国内生产总值"]
df = pd.read_csv("../data/Unsupervised Learning on Country Data/Country-data.csv",
header=0,
names=names)
这几行代码是用于读取数据的,读取的数据原来长这个样子:
这是从kaggle官网所获取到的公开数据,因为原本他们的第一行标签都是英文,所以小编通过官方对这些标签的解释,对其进行的翻译(谷歌翻译,我啥也不懂~),将翻译的标签替换原来的标签,因此就产生了上面的 names 变量;替换完以后的数据长这样:
1
注意:
使用 pandas 读取数据时若要对标签进行替换,首先自己要准备好要替换的内容,一般以列表形式即可,然后使用 names 参数,于此同时,还要标明 header=0!如果不加这个,则会产生以下情况。
其他相关 pandas 的用法,同学们可以去它的官网自己看看:https://pandas.pydata.org/
fig = px.scatter(data_frame=df,
title="国家数据的无监督学习", # 图的标题
x="人均国内生产总值", # x轴
y="人均纯收入", # y轴
color="人均卫生支出总额", # 散点图的颜色
size="平均寿命", # 散点图的大小
hover_name="国家", # 悬停文本的标题
hover_data=["儿童死亡人数(每千人)",
"商品和服务的人均出口", "通货膨胀", "新生儿数量(每个母亲)"] # 悬停数据
)
这里就是我们正式画图的代码了,可以看到小编已经把每个参数的用法在它们的后面已经进行简单的解释了,大家可以自行尝试一下每一个参数的具体表现,然后根据自己的需求进行舍弃。下面我们对每个参数进行详细的介绍:
参数一:
data_frame=
这个无需多说,就是绘图的数据源。
参数二:
tltle=
绘制出来的图的标题,可以自己随意命名。
参数三、四:
x=
y=
这个是绘图不可缺少的两个参数,x 轴和 y 轴所放入的数据,不同的数据都会让整个图绘制的大不一样。
参数五:
color=
这个参数用于改变散点图的颜色,plotly的颜色设置和其他的模块有点不一样,它的颜色可以直接用自己的数据来设置颜色,就如上面一样,我们这里用的是“人均卫生支出总额”数据,plotly 模块自动给我们自动找了一种色系来用于表示整个散点图的颜色。
参数六:
size=
这个参数是用于设置每个点的大小,也可以用我们自带的数据来加以设置,可以看到我们这次使用的是“平均寿命”来设置点的大小,由于各个国家的平均寿命相差不是很大,所以上图的演示没有体现出各个点的大小关系,同学们可以自己尝试使用其他差别较大的数据来设置点的大小,这样会比较明显一点。
参数七、八:
hover_name=
hover_data=
这两个参数是关于图形的悬停信息的设置,第一个是设置悬停信息的标题名称,第二个是设置悬停信息要显示的内容,可以使用列表的方式将其他标签加入其中,从而让悬停信息中显示更加多的内容。
fig.show()
这最后一行的作用就是让整个图绘制出来,咱也不知道为啥,反正就是要加~
至此,我们这个简单而又好看的散点图就大致完成了。同学们有木有很有成就感~
上面我们介绍了 scatter() 的常用参数,接下来我们继续介绍一下小编认为不是很常用的,但是感觉还是挺有用的一些参数。
参数九:
symbol=
这个参数是将散点图的点用其他的小图标表示,不过那个小图标一共好像只有五个,具体例子如下:
fig = px.scatter(data_frame=df,
title="国家数据的无监督学习",
x="人均国内生产总值",
y="人均纯收入",
hover_name="国家",
symbol="国家"
)
fig.show()
参数十:
text=
这个参数的作用是在散点图中显示指定的标签文本,具体例子如下:
fig = px.scatter(data_frame=df,
title="国家数据的无监督学习",
x="人均国内生产总值",
y="人均纯收入",
hover_name="国家",
text="国家"
)
fig.show()
额,这个显示不是很好,左下角的都糊成一坨了,,,不过我们可以清楚的看到右上角一些稀疏的散点上面有着每个国家的名字,这个参数小编觉得有时候应该挺有用的。
参数十一、十二:
width=
heigth=
这两个参数相信大家一眼就能看出来,用于控制图形的宽和高的,具体例子如下:
fig = px.scatter(data_frame=df,
title="国家数据的无监督学习",
x="人均国内生产总值",
y="人均纯收入",
hover_name="国家",
width=1000,
height=1000
)
fig.show()
参数十三、十四:
log_x=
log_y=
这两个参数的作用为如果它们都为 True ,那么将把 x,y 轴以对数缩放。这个可能比较难理解,通俗的来讲,就是将 x,y 轴的数据进行求对数,然后再进行绘图,具体例子如下:
fig = px.scatter(data_frame=df,
title="国家数据的无监督学习",
x="人均国内生产总值",
y="人均纯收入",
hover_name="国家",
log_x=True,
log_y=True
)
fig.show()
这里我们可以很明显的看到,通过对 x,y 轴的数据进行求对数后,原来集中分布在左下角的数据已经变成大致呈线性分布了,所以说,这两个参数在某些情况下会产生意想不到的结果。
至此,scatter()的简单介绍就差不多结束了,我们上面介绍的也只是它的部分参数,有兴趣的同学可以去探索一下它一些其他的参数,这里给出传送门:
https://plotly.com/python-api-reference/generated/plotly.express.scatter.html
作者|十丿叶
编辑|潇洒哥
感谢大家观看
关注我们不迷路噢
扫码关注我们 | |
QQ群:729683466 |
◰
参考来源
Plotly官网
https://plotly.com/python/
数据来源
https://www.kaggle.com/