excel(data25.xls)中有数据,我正在尝试基于它们构建图表。事实证明不是很好......即。由于最大值是2969,而且下降的很快,所以整个颜色网格都在最大值附近(saved_figure.png),基本上整个图都是蓝色的,不好...
我这样构建图表:
import xlwings as xw
import matplotlib.pyplot as plt
def get_row_col_index(sheet):
'Индексы для диапазона что бы забрать данные'
row = 0
col = 0
# find col
for i in range(1, 5000):
val = sheet.range((1, i)).value
if val == None:
col = (1, i - 1)
break
# find row
for i in range(1, 5000):
val = sheet.range((i, 1)).value
if val == None:
row = (i - 1, 1)
break
return row, col
def get_data_in_excel(row: tuple, col: tuple) -> list:
val = sheet.range((2, 2), (row[0], col[1])).options(
ndim=2).value # с 2 - т.к. нужно ислючить размерность длины по X, Y
return val
wb = xw.Book(f'data25.xls')
sheet = wb.sheets['Лист1']
row, col = get_row_col_index(sheet)
val = get_data_in_excel(row, col)
plt.imshow(val, cmap='jet', interpolation = 'bicubic', vmax=0.5)
plt.show()
# plt.savefig('saved_figure.png')
数据:excel链接
PS。所需的图表是从基于相同 excel 数据的另一个程序中获得的。
您的数据准备代码可以减少到几行。但是,对于图片本身,它暂时不能很好地发挥作用,你想要什么。我会多想的。
您的数据并不像看起来那样。例如,它们也可以使用对数表示如下:
用轮廓更新变体: