Пример с setColorByValue()
, но я думаю, что эта функция не будет так полезна, как вы ожидаете. Честно говоря, я не понимаю, почему эта функция существует.
Необходимо указать, какие столбцы нужно раскрасить, а затем запустить setColorbyValue()
, но столбцам могут понадобиться целочисленные значения или значения с плавающей запятой. Или, по крайней мере, он не будет работать со строками.
pt.multiplecollist = [0, 2] # column's number
pt.setColorbyValue() # set colors using `pt.values_to_colors()`
Другая проблема: он открывает диалоговое окно и запрашивает какой-либо цвет.
На основе исходного кода: setColorbyValue
import tkinter as tk
import pandas as pd
from pandastable import Table
df = pd.DataFrame({
'A': [1,2,3,4,5,6],
'B': [1,2,3,4,5,6],
'C': [1,2,3,4,5,6],
})
root = tk.Tk()
table_frame = tk.Frame(root)
table_frame.pack()
pt = Table(table_frame, dataframe=df) # it can't be `root`, it has to be `frame`
pt.show()
pt.multiplecollist = [0,2] # column's number
pt.setColorbyValue() # set colors using `pt.values_to_colors()`
root.mainloop()
КСТАТИ: более полезным может быть setColorByMask()
mask_1 = pt.model.df['A'] < 5
pt.setColorByMask('A', mask_1, 'red')
mask_2 = pt.model.df['A'] >= 5
pt.setColorByMask('A', mask_2, 'green')
import tkinter as tk
import pandas as pd
from pandastable import Table
df = pd.DataFrame({
'A': [1,2,3,4,5,6],
'B': [1,2,3,4,5,6],
'C': [1,2,3,4,5,6],
})
root = tk.Tk()
table_frame = tk.Frame(root)
table_frame.pack()
pt = Table(table_frame, dataframe=df) # it can't be `root`, it has to be `frame`
pt.show()
mask_1 = pt.model.df['A'] < 5
pt.setColorByMask('A', mask_1, 'red')
mask_2 = pt.model.df['A'] >= 5
pt.setColorByMask('A', mask_2, 'green')
root.mainloop()