mirror of
https://github.com/Relintai/pandemonium_engine_easy_charts.git
synced 2025-02-26 17:24:21 +01:00
update dataframe
This commit is contained in:
parent
ef76c04470
commit
90128adb3c
@ -372,7 +372,7 @@ func populate_x_datas():
|
||||
x_datas.append(x_values)
|
||||
|
||||
func populate_y_datas():
|
||||
y_labels.append(y_values.duplicate(true).pop_front() as String)
|
||||
y_labels.append(y_values.pop_front() as String)
|
||||
|
||||
for val in y_values.size():
|
||||
y_values[val] = y_values[val] as float
|
||||
|
@ -9,42 +9,37 @@ var datamatrix : Matrix = null
|
||||
var dataset : Array = []
|
||||
|
||||
func _init(datamatrix : Matrix, headers : PoolStringArray = [], labels : PoolStringArray = [] , table_name : String = "") -> void:
|
||||
if headers.empty() : for header in range(datamatrix.get_size().y) : headers.append(MatrixGenerator.get_letter_index(header))
|
||||
if labels.empty() : for label in range(datamatrix.get_size().x) : labels.append(label as String)
|
||||
if datamatrix.empty(): datamatrix.resize(labels.size(), headers.size())
|
||||
if labels.empty() : for label in range(datamatrix.get_size().x) : labels.append(label as String)
|
||||
if headers.empty() : for header in range(datamatrix.get_size().y) : headers.append(MatrixGenerator.get_letter_index(header))
|
||||
build_dataframe(datamatrix, headers, labels, table_name)
|
||||
|
||||
func build_dataframe(datamatrix : Matrix, headers : PoolStringArray = [], labels : PoolStringArray = [] , table_name : String = "") -> void:
|
||||
self.datamatrix = datamatrix
|
||||
self.table_name = table_name
|
||||
self.labels = labels
|
||||
self.headers = headers
|
||||
self.labels = labels
|
||||
self.table_name = table_name
|
||||
self.dataset = build_dataset_from_matrix(datamatrix, headers, labels)
|
||||
|
||||
func build_dataset(data : Array, headers : PoolStringArray, labels : PoolStringArray) -> Array:
|
||||
var dataset : Array = [Array(headers)]
|
||||
for row_i in range(data.size()): dataset.append([labels[row_i]]+data[row_i])
|
||||
return dataset
|
||||
|
||||
func build_dataset_from_matrix(datamatrix : Matrix, headers : PoolStringArray, labels : PoolStringArray) -> Array:
|
||||
var data : Array = datamatrix.to_array()
|
||||
return build_dataset(data, headers, labels)
|
||||
|
||||
func insert_column(column : Array, header : String = "", index : int = dataset[0].size()) -> void:
|
||||
assert(column.size() == datamatrix.rows(), "error: the column size must match the dataset column size")
|
||||
func build_dataset(data : Array, headers : PoolStringArray, labels : PoolStringArray) -> Array:
|
||||
var dataset : Array = [Array([" "]) + Array(headers)]
|
||||
for row_i in range(labels.size()): dataset.append(([labels[row_i]] + data[row_i]) if not data.empty() else [labels[row_i]])
|
||||
return dataset
|
||||
|
||||
func insert_column(column : Array, header : String = "", index : int = dataset[0].size() - 1) -> void:
|
||||
assert(column.size() == datamatrix.rows() if not datamatrix.empty() else labels.size(), "error: the column size must match the dataset column size")
|
||||
headers.insert(index, header if header != "" else MatrixGenerator.get_letter_index(index))
|
||||
if datamatrix.get_column(index-2 if index > 2 else 0).count(null) == datamatrix.rows():
|
||||
datamatrix.update_column(column, index-2)
|
||||
else:
|
||||
datamatrix.insert_column(column, index-1)
|
||||
datamatrix.insert_column(column, index)
|
||||
dataset = build_dataset_from_matrix(datamatrix, headers, labels)
|
||||
|
||||
func insert_row(row : Array, label : String = "", index : int = dataset.size()) -> PoolStringArray:
|
||||
labels.insert(index-1, label if label != "" else (index-1) as String)
|
||||
if datamatrix.get_row(index-2 if index > 2 else 0).count(null) == datamatrix.columns():
|
||||
datamatrix.update_row(row, index-2 if index > 2 else 0)
|
||||
else:
|
||||
datamatrix.insert_row(row, index-1)
|
||||
func insert_row(row : Array, label : String = "", index : int = dataset.size() - 1) -> PoolStringArray:
|
||||
assert(row.size() == datamatrix.columns() if not datamatrix.empty() else headers.size(), "error: the row size must match the dataset row size")
|
||||
labels.insert(index, label if label != "" else str(index))
|
||||
datamatrix.insert_row(row, index)
|
||||
dataset = build_dataset_from_matrix(datamatrix, headers, labels)
|
||||
return PoolStringArray([label] + row)
|
||||
|
||||
|
@ -29,10 +29,9 @@ func update_column(column : Array, index : int) -> void:
|
||||
|
||||
func resize(rows: int, columns: int) -> void:
|
||||
for row in range(rows):
|
||||
var value_row := []
|
||||
for column in range(columns):
|
||||
value_row.append(null)
|
||||
values.append(value_row)
|
||||
var row_column: Array = []
|
||||
row_column.resize(columns)
|
||||
values.append(row_column)
|
||||
|
||||
func to_array() -> Array:
|
||||
return values.duplicate(true)
|
||||
|
Loading…
Reference in New Issue
Block a user