如何使用Plotly将两个绘图合并为一个图形?

2024-10-02 20:44:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有2个csv文件,我的代码如下

df = pd.read_csv("test.csv",
             sep='\t',skiprows=range(9),names=['A', 'B', 'C','D'])

df2 = pd.read_csv("LoadMatch_Limit.csv",skiprows=range(1),names=['X','Y'])

fig = px.line([df,df2], x=['A','X'] , y=['D','Y'])

我想要我的折线图,x轴从(列“A”和“x”)开始,y轴从(列“D”和“y”)开始。 我是否可以将这两张图表绘制为一个图形


Tags: 文件csv代码testdfreadnamesfig
2条回答

Plotly.offline没有属性line。您需要使用graph对象在一个图形中绘制两个图形。下面是一个简单的示例(运行下面的代码并查看输出图形)

import numpy as np
import pandas as pd
import plotly.offline as py
import plotly.graph_objs as go
from plotly import tools

df1 = pd.DataFrame({"X":np.linspace(0,30,10), "Y":np.random.rand(10)})
df2 = pd.DataFrame({"A":np.linspace(0,40,10), "B":np.random.rand(10)})

# plotting the graphs...

# 'rgb(128, 0, 128)'
# color=sns.color_palette()
def scatter_chart(x, y, color, name):

   trace = go.Scatter(
             x=x.values,
             y=y.values,
             name=name,
   
             marker=dict(
                    color=color,
                    line=dict(
                    color=color,
                    width=1)
                  ),
              )
  return trace
trace1 = scatter_chart(df2["A"], df2["B"], 'rgb(128, 0, 128)', "df2")
trace2 = scatter_chart(df1["X"], df1["Y"], 'rgba(50, 171, 96, 0.6)', "df1")
fig = tools.make_subplots(rows=1,cols=1, vertical_spacing=0.5)
fig.add_trace(trace1)
fig.add_trace(trace2)

fig.update_layout(
title="df2 and df1 plot",
height=600, 
width=600, 
# annotations=annotations, 
xaxis=dict(tickangle=-45),
legend=dict(x=0.029, y=1.038, font_size=10),
margin=dict(l=100, r=20, t=70, b=70),
paper_bgcolor='rgb(248, 248, 255)',
plot_bgcolor='rgb(248, 248, 255)',)
py.iplot(fig, filename='pageviews_plots_4')

可以创建两个绘图,并将它们与plotly graph对象组合

import plotly.express as px
import plotly.graph_objects as go

fig1 = px.line(df, x='A', y='D')
fig2 = px.line(df2, x='X', y='Y')

fig = go.Figure(data = fig1.data + fig2.data)
fig.show()

相关问题 更多 >