使用python中的plotly.express绘制路径图(连接散点图)

最近发现一个有意思的python绘图库,试着玩一玩

随机生成点数据

import random

def generate_data(length):
    data = []
    for i in range(length):
        longitude = random.uniform(120, 121)
        latitude = random.uniform(36, 37)
        sensor = i
        data.append([longitude, latitude, sensor])
    return data

l = generate_data(30)

绘图

import plotly.graph_objects as go

def drawPic(dots):
    # Convert the list of dots into a DataFrame
    df = pd.DataFrame(dots, columns=['Longitude', 'Latitude', 'Sensor'])

    # Create a scatter plot
    scatter = px.scatter(df, x='Longitude', y='Latitude', text='Sensor')

    # Create a line plot
    line = px.line(df, x='Longitude', y='Latitude')

    # Combine scatter plot and line plot
    fig = go.Figure(data=scatter.data + line.data)

    # Update layout properties
    fig.update_traces(textposition='top center')
    fig.update_layout(title_text='Sensor Locations', title_x=0.5)
    fig.show()

drawPic(l)

效果

更美观一点

def drawPic(dots):
    # Convert the list of dots into a DataFrame
    df = pd.DataFrame(dots, columns=['Longitude', 'Latitude', 'Sensor'])

    # Create a scatter plot
    scatter = go.Scatter(x=df['Longitude'], y=df['Latitude'], mode='markers+text', text=df['Sensor'], textposition='top center', marker=dict(size=10, color='LightSkyBlue', line=dict(width=2, color='DarkSlateGrey')))

    # Create a line plot
    line = go.Scatter(x=df['Longitude'], y=df['Latitude'], mode='lines', line=dict(color='RoyalBlue', width=2))

    # Combine scatter plot and line plot
    fig = go.Figure(data=[line, scatter])

    # Update layout properties
    fig.update_layout(title_text='Sensor Locations', title_x=0.5, title_font=dict(size=24, color='DarkSlateGrey'), plot_bgcolor='aliceblue', xaxis_title='Longitude', yaxis_title='Latitude', font=dict(family='Courier New, monospace', size=18, color='DarkSlateGrey'))

    fig.show()

贴个文档Line charts in Python (plotly.com)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值