diff --git a/src/main/java/de/deadlocker8/budgetmaster/charts/Chart.java b/src/main/java/de/deadlocker8/budgetmaster/charts/Chart.java
index 28bfbf51c9d906cb704343c2d516991118ef1d96..d0832eeee764b025b3ae4f7b125bd2c476119763 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/charts/Chart.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/charts/Chart.java
@@ -26,12 +26,15 @@ public class Chart
 	@Expose
 	private int version;
 
-	public Chart(String name, String script, ChartType type, int version)
+	private ChartDisplayType displayType;
+
+	public Chart(String name, String script, ChartType type, int version, ChartDisplayType displayType)
 	{
 		this.name = name;
 		this.script = script;
 		this.type = type;
 		this.version = version;
+		this.displayType = displayType;
 	}
 
 	public Chart()
@@ -88,6 +91,16 @@ public class Chart
 		this.version = version;
 	}
 
+	public ChartDisplayType getDisplayType()
+	{
+		return displayType;
+	}
+
+	public void setDisplayType(ChartDisplayType displayType)
+	{
+		this.displayType = displayType;
+	}
+
 	@Override
 	public String toString()
 	{
@@ -97,6 +110,7 @@ public class Chart
 				", script='" + script + '\'' +
 				", type=" + type +
 				", version=" + version +
+				", displayType=" + displayType +
 				'}';
 	}
 
@@ -106,16 +120,12 @@ public class Chart
 		if(this == o) return true;
 		if(o == null || getClass() != o.getClass()) return false;
 		Chart chart = (Chart) o;
-		return version == chart.version &&
-				Objects.equals(ID, chart.ID) &&
-				Objects.equals(name, chart.name) &&
-				Objects.equals(script, chart.script) &&
-				type == chart.type;
+		return version == chart.version && Objects.equals(ID, chart.ID) && Objects.equals(name, chart.name) && Objects.equals(script, chart.script) && type == chart.type && displayType == chart.displayType;
 	}
 
 	@Override
 	public int hashCode()
 	{
-		return Objects.hash(ID, name, script, type, version);
+		return Objects.hash(ID, name, script, type, version, displayType);
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartDisplayType.java b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartDisplayType.java
new file mode 100644
index 0000000000000000000000000000000000000000..075be702f2b5471f94aed4ed2fe3f80d8a2209b4
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartDisplayType.java
@@ -0,0 +1,9 @@
+package de.deadlocker8.budgetmaster.charts;
+
+public enum ChartDisplayType
+{
+	PIE,
+	BAR,
+	LINE,
+	CUSTOM
+}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartService.java b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartService.java
index 850e688fc9207cea2e819b08e777db0a3a99193c..b1431f9729d11a3598801f2b6c834b87bcf74e62 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartService.java
@@ -71,6 +71,7 @@ public class ChartService implements Resettable, AccessAllEntities<Chart>
 				LOGGER.debug(MessageFormat.format("Update default chart ''{0}'' from version {1} to {2}", chart.getName(), currentChart.getVersion(), chart.getVersion()));
 				currentChart.setVersion(chart.getVersion());
 				currentChart.setScript(chart.getScript());
+				currentChart.setDisplayType(chart.getDisplayType());
 				chartRepository.save(currentChart);
 			}
 		}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/charts/DefaultCharts.java b/src/main/java/de/deadlocker8/budgetmaster/charts/DefaultCharts.java
index 846537a8a8ac4a5cba3f15d316fbe4a77ffb79e7..e7b357f008c2683b4b0db31f3f5462a3853e1a19 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/charts/DefaultCharts.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/charts/DefaultCharts.java
@@ -16,39 +16,39 @@ public class DefaultCharts
 
 	public static final Chart CHART_DEFAULT = new Chart(null,
 			getChartFromFile("charts/Default.js"),
-			ChartType.CUSTOM, -1);
+			ChartType.CUSTOM, -1, ChartDisplayType.CUSTOM);
 
 	private static final Chart CHART_ACCOUNT_SUM_PER_DAY = new Chart("charts.default.accountSumPerDay",
 			getChartFromFile("charts/AccountSumPerDay.js"),
-			ChartType.DEFAULT, 7);
+			ChartType.DEFAULT, 8, ChartDisplayType.LINE);
 
 	private static final Chart CHART_INCOMES_AND_EXPENDITURES_PER_MONTH_BAR = new Chart("charts.default.incomesAndExpendituresPerMonthBar",
 			getChartFromFile("charts/IncomesAndExpendituresPerMonthBar.js"),
-			ChartType.DEFAULT, 7);
+			ChartType.DEFAULT, 8, ChartDisplayType.BAR);
 
 	private static final Chart CHART_INCOMES_AND_EXPENDITURES_PER_MONTH_LINE = new Chart("charts.default.incomesAndExpendituresPerMonthLine",
 			getChartFromFile("charts/IncomesAndExpendituresPerMonthLine.js"),
-			ChartType.DEFAULT, 7);
+			ChartType.DEFAULT, 8, ChartDisplayType.LINE);
 
 	private static final Chart CHART_INCOMES_AND_EXPENDITURES_BY_CATEGORY_BAR = new Chart("charts.default.incomesAndExpendituresByCategoryBar",
 			getChartFromFile("charts/IncomesAndExpendituresByCategoryBar.js"),
-			ChartType.DEFAULT, 2);
+			ChartType.DEFAULT, 3, ChartDisplayType.BAR);
 
 	private static final Chart CHART_INCOMES_AND_EXPENDITURES_BY_CATEGORY_PIE = new Chart("charts.default.incomesAndExpendituresByCategoryPie",
 			getChartFromFile("charts/IncomesAndExpendituresByCategoryPie.js"),
-			ChartType.DEFAULT, 3);
+			ChartType.DEFAULT, 4, ChartDisplayType.PIE);
 
 	private static final Chart CHART_INCOMES_AND_EXPENDITURES_PER_MONTH_BY_CATEGORIES = new Chart("charts.default.incomesAndExpendituresPerMonthByCategories",
 			getChartFromFile("charts/IncomesAndExpendituresPerMonthByCategories.js"),
-			ChartType.DEFAULT, 17);
+			ChartType.DEFAULT, 18, ChartDisplayType.BAR);
 
 	private static final Chart CHART_REST_PER_MONTH = new Chart("charts.default.restPerMonth",
 			getChartFromFile("charts/RestPerMonth.js"),
-			ChartType.DEFAULT, 3);
+			ChartType.DEFAULT, 4, ChartDisplayType.BAR);
 
 	private static final Chart CHART_INCOMES_AND_EXPENDITURES_PER_YEAR_BAR = new Chart("charts.default.incomesAndExpendituresPerYearBar",
 			getChartFromFile("charts/IncomesAndExpendituresPerYearBar.js"),
-			ChartType.DEFAULT, 2);
+			ChartType.DEFAULT, 3, ChartDisplayType.BAR);
 
 	private DefaultCharts()
 	{
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/converter/ChartConverter.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/converter/ChartConverter.java
index 77525beb6d89e44b8a7337ab4ae65537598acc97..a2dddcfa40202cd0dc5c544f64b7b69d21b91841 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/model/converter/ChartConverter.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/converter/ChartConverter.java
@@ -1,6 +1,7 @@
 package de.deadlocker8.budgetmaster.database.model.converter;
 
 import de.deadlocker8.budgetmaster.charts.Chart;
+import de.deadlocker8.budgetmaster.charts.ChartDisplayType;
 import de.deadlocker8.budgetmaster.database.model.Converter;
 import de.deadlocker8.budgetmaster.database.model.v5.BackupChart_v5;
 
@@ -19,6 +20,7 @@ public class ChartConverter implements Converter<Chart, BackupChart_v5>
 		chart.setType(backupChart.getType());
 		chart.setVersion(backupChart.getVersion());
 		chart.setScript(backupChart.getScript());
+		chart.setDisplayType(ChartDisplayType.CUSTOM);
 		return chart;
 	}
 
diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseExportTest.java b/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseExportTest.java
index adb009aa412ac2378bdfadac22ceb39390a9feac..b3bfee969ceffcb3b45a6143b20c450741e77b70 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseExportTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseExportTest.java
@@ -9,10 +9,7 @@ import de.deadlocker8.budgetmaster.accounts.AccountType;
 import de.deadlocker8.budgetmaster.categories.Category;
 import de.deadlocker8.budgetmaster.categories.CategoryService;
 import de.deadlocker8.budgetmaster.categories.CategoryType;
-import de.deadlocker8.budgetmaster.charts.Chart;
-import de.deadlocker8.budgetmaster.charts.ChartRepository;
-import de.deadlocker8.budgetmaster.charts.ChartService;
-import de.deadlocker8.budgetmaster.charts.ChartType;
+import de.deadlocker8.budgetmaster.charts.*;
 import de.deadlocker8.budgetmaster.database.DatabaseParser;
 import de.deadlocker8.budgetmaster.database.DatabaseService;
 import de.deadlocker8.budgetmaster.database.InternalDatabase;
@@ -244,6 +241,7 @@ class DatabaseExportTest
 		chart.setType(ChartType.CUSTOM);
 		chart.setVersion(7);
 		chart.setScript("/* This list will be dynamically filled with all the transactions between\r\n* the start and and date you select on the \"Show Chart\" page\r\n* and filtered according to your specified filter.\r\n* An example entry for this list and tutorial about how to create custom charts ca be found in the BudgetMaster wiki:\r\n* https://github.com/deadlocker8/BudgetMaster/wiki/How-to-create-custom-charts\r\n*/\r\nvar transactionData \u003d [];\r\n\r\n// Prepare your chart settings here (mandatory)\r\nvar plotlyData \u003d [{\r\n    x: [],\r\n    y: [],\r\n    type: \u0027bar\u0027\r\n}];\r\n\r\n// Add your Plotly layout settings here (optional)\r\nvar plotlyLayout \u003d {};\r\n\r\n// Add your Plotly configuration settings here (optional)\r\nvar plotlyConfig \u003d {\r\n    showSendToCloud: false,\r\n    displaylogo: false,\r\n    showLink: false,\r\n    responsive: true\r\n};\r\n\r\n// Don\u0027t touch this line\r\nPlotly.newPlot(\"containerID\", plotlyData, plotlyLayout, plotlyConfig);\r\n");
+		chart.setDisplayType(ChartDisplayType.CUSTOM);
 
 		ChartRepository chartRepositoryMock = Mockito.mock(ChartRepository.class);
 		Mockito.when(chartRepositoryMock.findAllByType(Mockito.any())).thenReturn(List.of(chart));
diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v7_convertToInternalTest.java b/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v7_convertToInternalTest.java
index 20ca98240a5895b5378ad4df953b44a17c8c15ea..532319e80c0660bb29891a8e31ecf4564f0f1644 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v7_convertToInternalTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v7_convertToInternalTest.java
@@ -5,6 +5,7 @@ import de.deadlocker8.budgetmaster.accounts.AccountType;
 import de.deadlocker8.budgetmaster.categories.Category;
 import de.deadlocker8.budgetmaster.categories.CategoryType;
 import de.deadlocker8.budgetmaster.charts.Chart;
+import de.deadlocker8.budgetmaster.charts.ChartDisplayType;
 import de.deadlocker8.budgetmaster.charts.ChartType;
 import de.deadlocker8.budgetmaster.database.DatabaseParser_v7;
 import de.deadlocker8.budgetmaster.database.InternalDatabase;
@@ -66,7 +67,7 @@ class DatabaseParser_v7_convertToInternalTest
 			DatabaseParser_v7 importer = new DatabaseParser_v7(json);
 			InternalDatabase database = importer.parseDatabaseFromJSON().convertToInternal();
 
-			final Chart chart = new Chart("The best chart", "/* This list will be dynamically filled with all the transactions between\r\n* the start and and date you select on the \"Show Chart\" page\r\n* and filtered according to your specified filter.\r\n* An example entry for this list and tutorial about how to create custom charts ca be found in the BudgetMaster wiki:\r\n* https://github.com/deadlocker8/BudgetMaster/wiki/How-to-create-custom-charts\r\n*/\r\nvar transactionData \u003d [];\r\n\r\n// Prepare your chart settings here (mandatory)\r\nvar plotlyData \u003d [{\r\n    x: [],\r\n    y: [],\r\n    type: \u0027bar\u0027\r\n}];\r\n\r\n// Add your Plotly layout settings here (optional)\r\nvar plotlyLayout \u003d {};\r\n\r\n// Add your Plotly configuration settings here (optional)\r\nvar plotlyConfig \u003d {\r\n    showSendToCloud: false,\r\n    displaylogo: false,\r\n    showLink: false,\r\n    responsive: true\r\n};\r\n\r\n// Don\u0027t touch this line\r\nPlotly.newPlot(\"containerID\", plotlyData, plotlyLayout, plotlyConfig);\r\n", ChartType.CUSTOM, 7);
+			final Chart chart = new Chart("The best chart", "/* This list will be dynamically filled with all the transactions between\r\n* the start and and date you select on the \"Show Chart\" page\r\n* and filtered according to your specified filter.\r\n* An example entry for this list and tutorial about how to create custom charts ca be found in the BudgetMaster wiki:\r\n* https://github.com/deadlocker8/BudgetMaster/wiki/How-to-create-custom-charts\r\n*/\r\nvar transactionData \u003d [];\r\n\r\n// Prepare your chart settings here (mandatory)\r\nvar plotlyData \u003d [{\r\n    x: [],\r\n    y: [],\r\n    type: \u0027bar\u0027\r\n}];\r\n\r\n// Add your Plotly layout settings here (optional)\r\nvar plotlyLayout \u003d {};\r\n\r\n// Add your Plotly configuration settings here (optional)\r\nvar plotlyConfig \u003d {\r\n    showSendToCloud: false,\r\n    displaylogo: false,\r\n    showLink: false,\r\n    responsive: true\r\n};\r\n\r\n// Don\u0027t touch this line\r\nPlotly.newPlot(\"containerID\", plotlyData, plotlyLayout, plotlyConfig);\r\n", ChartType.CUSTOM, 7, ChartDisplayType.CUSTOM);
 			chart.setID(9);
 
 			assertThat(database.getCharts()).hasSize(1)