python中plotly.express中线条图_python画图:Plotly学习笔记

本次笔记内容plotly基本用法

一个Scatter的示例:go.Scatter()

一个Scatter的示例:px()

注意

plotly基本用法

每一个trace就像一个独立的图层,互不干扰。data=[trace1, trace2...]将这些图层叠加在一起。

layout定义了data提供的信息之外的东西,比如plot title, 坐标轴的设置import plotly

import plotly.graph_objects as go

trace1 = go.Scatter(...)

trace2 = go.Scatter(...)

layout1 = go.Layout(...)

fig = go.Figure(data=[trace1,trace2],

layout=layout1)

fig.show() # 直接plot出来

# or 保存为.html格式的文件

plotly.offline.plot(dict(data=[trace1,trace2]), filename = 'XXX.html')

[图片上传中…(image.png-fd81bb-1577002591333-0)]

一个Scatter的示例:go.Scatter()import plotly.express as px

import plotly.graph_objects as go

import plotly

tips = px.data.tips() # 用px里的示例数据

tips.head() #看一下

total_bill tip sex smoker day time size

0 16.99 1.01 Female No Sun Dinner 2

1 10.34 1.66 Male No Sun Dinner 3

2 21.01 3.50 Male No Sun Dinner 3

3 23.68 3.31 Male No Sun Dinner 2

4 24.59 3.61 Female No Sun Dinner 4

trace_tip = go.Scatter(x=tips.total_bill.tolist(),

y=tips.tip.tolist(),

mode='markers+text',

# mode决定图上出现点,线,text等的组合形式

name = 'trace_tip',

marker=dict(color=tips['size'].tolist(), # 上色类别

colorscale='Viridis', # 指定颜色

showscale=True,

size=[i*10 for i in tips['size'].tolist()]), #点大小

# showlegend=True,

text=tips['sex'].tolist(),

textposition='bottom center',

textfont=dict(size=18,color='LightSeaGreen'))

# plotly.offline.plot(dict(data=[trace_tip]),filename='plot.html')

fig = go.Figure(data=[trace_tip])

# 如果在这个基础上接着画,那就[trace_tip1, trace_tip2...]

fig.show()

wAAACwAAAAAAQABAEACAkQBADs=

一个Scatter的示例:px()tips['size10'] = tips['size']*10

fig = px.scatter(tips,x='total_bill',y='tip',size='size10',color='size',size_max=40,

color_continuous_scale=px.colors.sequential.Viridis,text='sex')

# 对于text的颜色大小位置,在update_trace里设置

fig.update_traces(textposition='bottom center',

textfont=dict(size=18,

color='LightSeaGreen'))

fig.write_html('plot.html') # 保存为html格式

# fig.show()

wAAACwAAAAAAQABAEACAkQBADs=

注意:如果用jupyter lab, 需要安装一些jupyter lab及其相关支持,follow官方的步骤:

wAAACwAAAAAAQABAEACAkQBADs=

超级详细的reference: 每个attribue都是什么意思

比方说go.Scatter(mode=...)中有几个mode选项,分别有什么效果,都非常详细。真的太详细了,我喜极而泣T_T

wAAACwAAAAAAQABAEACAkQBADs=

plotly本质上并不是为publish服务的,也不是统计分析友好型的可视化工具。但是interactive的模式能帮助我们更好的了解数据背后的东西(以及更加好看和酷炫)。就分析报告的出具,为发表paper准备的标准化制图而言,可能还是R的ggplot2, ggpubr更加方便顺手一些。对于数据量大,层次丰富,研究目的不那么明确的数据,plotly可能更加便于发现问题。当然还是要根据需求选择工具。

虽然plotly express和R的ggplot2惊人相似,但是express似乎并没有把所有可调节的东西纳入函数里。不像ggplot2的万物皆可调。比如ggplot2可以通过+theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1...))来调节X轴数字字体大小,距离轴的距离,倾斜角度等。plotly我暂时没找到除了update_trace, update_layout之外的,可以在函数内实现的方法。(当然可能是文档看少了)

https://www.jianshu.com/p/21f8bc2ff882

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值