diff --git a/optuna_dashboard/ts/components/GraphParallelCoordinate.tsx b/optuna_dashboard/ts/components/GraphParallelCoordinate.tsx
index b991ef94..3a227237 100644
--- a/optuna_dashboard/ts/components/GraphParallelCoordinate.tsx
+++ b/optuna_dashboard/ts/components/GraphParallelCoordinate.tsx
@@ -17,6 +17,8 @@ import {
useParamTargets,
} from "../trialFilter"
import { useMergedUnionSearchSpace } from "../searchSpace"
+import { getPlotAPI, PlotType } from "../apiClient"
+import { useBackendRender } from "../state"
const plotDomId = "graph-parallel-coordinate"
@@ -86,6 +88,35 @@ const useTargets = (
export const GraphParallelCoordinate: FC<{
study: StudyDetail | null
+}> = ({ study = null }) => {
+ if (useBackendRender()) {
+ return
+ } else {
+ return
+ }
+}
+
+const GraphParallelCoordinateBackend: FC<{
+ study: StudyDetail | null
+}> = ({ study = null }) => {
+ const studyId = study?.id
+ useEffect(() => {
+ if (studyId === undefined) {
+ return
+ }
+ getPlotAPI(studyId, PlotType.ParallelCoordinate)
+ .then(({ data, layout }) => {
+ plotly.react(plotDomId, data, layout)
+ })
+ .catch((err) => {
+ console.error(err)
+ })
+ }, [studyId])
+ return
+}
+
+const GraphParallelCoordinateFrontend: FC<{
+ study: StudyDetail | null
}> = ({ study = null }) => {
const theme = useTheme()
const [targets, searchSpace, renderCheckBoxes] = useTargets(study)