How do I combine two plots into one figure using Plotly?

I have 2 csv files, my codes are as below.

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']) 

I would like my line chart, x-axis to take from (columns 'A' and 'X') and my y-axis to take from (columns 'D' and 'Y'). Is there anyway I can plot these 2 charts as one figure?

0

2 Answers

You could create the two plots and combine them with plotly graph objects

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() 

Plotly.offline has no attribute line. You need to use the graph object to plot two graphs in a single figure. A simple example is shown below(run the code below and see the output 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') 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like