Source code for emodpy_hiv.plotting.plot_a_vs_b
import pandas as pd
import emodpy_hiv.plotting.xy_plot as xy_plot
[docs]def plot_csv_a_vs_b(a_filename: str,
b_filename: str,
a_column_prefix: str = "A",
b_column_prefix: str = "B",
title: str = "A vs B",
y_axis_name: str = None,
img_dir: str = None):
"""
Plot the two CSV files against each other. It is assumed that there is a 'Time'
column and both files have the same values in that column.
"""
df_a = pd.read_csv(a_filename)
df_b = pd.read_csv(b_filename)
if "Time" not in df_a.columns:
raise ValueError(f"'Time' column does not exist in the file({a_filename}).")
if "Time" not in df_b.columns:
raise ValueError(f"'Time' column does not exist in the file({b_filename}).")
df_a.index = df_a["Time"]
df_b.index = df_b["Time"]
del df_a["Time"]
del df_b["Time"]
name_dict = {}
for column_name in df_a.columns:
name_dict[column_name] = a_column_prefix + "-" + column_name
df_a = df_a.rename(columns=name_dict)
name_dict = {}
for column_name in df_b.columns:
name_dict[column_name] = b_column_prefix + "-" + column_name
df_b = df_b.rename(columns=name_dict)
xy_plot.xy_plot(img_dir=img_dir,
df=df_a,
expected_df=df_b,
title_1=title,
title_2=None,
y_axis_name=y_axis_name,
fraction_of_total=False,
show_legend=True,
show_markers=False,
min_x=None, max_x=None, min_y=None, max_y=None,
x_axis_as_log_scale=False,
y_axis_as_log_scale=False)