1.散点图绘制
1)使用 import plotly.offline可以让生成的HTML离线显示
3)fig.update_layout 设置画布大小,背景颜色paper_bgcolor,绘布颜色plot_bgcolor,标题名字title,和标题名字居中 title_x=0.5
1)使用 import plotly.offline可以让生成的HTML离线显示
2)使用px.scatter即可绘制出来散点图,并且添加的x,y轴数据可以是Series,使用trendline就可以添加趋势线,color添加的也可以是series,会让生成的散点图呈现出多种颜色,还需要添加trendline_scope,让趋势线显示出来
fig = px.scatter(x=data1, y=data2, trendline="ols", color=df1["A"][4:], trendline_scope="overall")
3)fig.update_layout 设置画布大小,背景颜色paper_bgcolor,绘布颜色plot_bgcolor,标题名字title,和标题名字居中 title_x=0.5
fig.update_layout(width=500, height=550, paper_bgcolor="#E3DEE3", plot_bgcolor="white",
title=f"Scatter CORR ({format(r * r, '.4f')}) ({unit_count}x)", title_x=0.5)
4)修改横纵坐标标签名,显示背景分割线,调整背景分割线颜色
fig.update_xaxes(title_text="横坐标 [X]",
tickfont=dict(size=12, color="black"), gridcolor="#E8D2E4", showgrid=True, showline=True)
fig.update_yaxes(title_text="纵坐标 [Y]",
tickfont=dict(size=12, color="black"), gridcolor="#E8D2E4", showgrid=True, showline=True)
import plotly.express as px
import plotly.offline
from scipy import stats
from pathlib import Path
import pandas as pd
path = Path.home() / "Desktop" / "combine.xlsx"
df1 = pd.read_excel(path, sheet_name="A")
df2 = pd.read_excel(path, sheet_name="B")
# 处理数据
data1 = df1[df1.columns[1]][4:]
data2 = df2[df2.columns[1]][4:]
unit_count = len(data1)
# 获取回归线属性
slope, intercept, r, p, std_err = stats.linregress(data1, data2)
A
# 绘制散点图
fig = px.scatter(x=data1, y=data2, trendline="ols", color=df1["A"][4:], trendline_scope="overall")
fig.update_layout(width=500, height=550, paper_bgcolor="#E3DEE3", plot_bgcolor="white",
title=f"Scatter CORR ({format(r * r, '.4f')}) ({unit_count}x)", title_x=0.5)
fig.update_xaxes(title_text="横坐标",
tickfont=dict(size=12, color="black"), gridcolor="#E8D2E4", showgrid=True, showline=True)
fig.update_yaxes(title_text="纵坐标 [Y]",
tickfont=dict(size=12, color="black"), gridcolor="#E8D2E4", showgrid=True, showline=True)
plotly.offline.plot(fig)
效果图: