gpt4 book ai didi

python - XLSX Writer Python- 3 以数字为中点的色标

转载 作者:太空宇宙 更新时间:2023-11-03 15:55:40 25 4
gpt4 key购买 nike

我正在尝试在 XLSX 编写器中使用 3 色标和中间值为 0 的中点值进行条件格式化。我希望所有负值从红色(最低数字)缩放到黄色(当值为零时),所有正数从黄色(零)缩放到绿色(最高)。

当我尝试以下操作时,缩放比例变得一团糟..

在 Excel 中类似于以下内容:

enter image description here

我可以弄清楚如何在 XLSX writer 中制作 3 色标尺,但似乎没有一个选项(我可以看到)中点是一个数字:

worksheet.conditional_format('G2:G83', {'type': '3_color_scale',
'min_color': "red",
'mid_color': "yellow",
'max_color': "green"})

然后我尝试用一​​种标准将其分解,其中一种格式应用于零以上的值和零以下的值

worksheet.conditional_format('G2:G83', {'type': '2_color_scale',
'criteria': '<',
'value': 0,
'min_color': "red",
'max_color': "yellow"})


worksheet.conditional_format('G2:G83', {'type': '2_color_scale',
'criteria': '>',
'value': 0,
'min_color': "yellow",
'max_color': "green"})

但这似乎也行不通 - 如果有人有任何想法.. 请告诉我.. 将不胜感激。

完整示例代码:

import xlsxwriter

workbook = xlsxwriter.Workbook('conditional_format.xlsx')
worksheet1 = workbook.add_worksheet()


# Add a format. Light red fill with dark red text.
format1 = workbook.add_format({'bg_color': '#FFC7CE',
'font_color': '#9C0006'})

# Add a format. Green fill with dark green text.
format2 = workbook.add_format({'bg_color': '#C6EFCE',
'font_color': '#006100'})

# Some sample data to run the conditional formatting against.
data = [
[34, 72, -38, 30, 75, 48, 75, 66, 84, 86],
[-6, -24, 1, -84, 54, 62, 60, 3, 26, 59],
[-28, 0, 0, 13, -85, 93, 93, 22, 5, 14],
[27, -71, -40, 17, 18, 79, 90, 93, 29, 47],
[0, 25, -33, -23, 0, 1, 59, 79, 47, 36],
[-24, 100, 20, 88, 29, 33, 38, 54, 54, 88],
[6, -57, -88, 0, 10, 26, 37, 7, 41, 48],
[-52, 78, 1, -96, 26, -45, 47, 33, 96, 36],
[60, -54, -81, 66, 81, 90, 80, 93, 12, 55],
[-70, 5, 46, 14, 71, -19, 66, 36, 41, 21],

]

for row, row_data in enumerate(data):
worksheet1.write_row(row + 2, 1, row_data)


worksheet1.conditional_format('B2:B12', {'type': '2_color_scale',
'criteria': '<',
'value': 0,
'min_color': "red",
'max_color': "yellow"})


worksheet1.conditional_format('C2:C12', {'type': '2_color_scale',
'criteria': '>',
'value': 0,
'min_color': "yellow",
'max_color': "green"})

worksheet1.conditional_format('C2:C12', {'type': '2_color_scale',
'criteria': '<',
'value': 0,
'min_color': "red",
'max_color': "yellow"})


worksheet1.conditional_format('D2:D12', {'type': '3_color_scale',
'min_color': "red",
'mid_color': "yellow",
'max_color': "green"})







workbook.close()
writer.save()

这是我得到的:

enter image description here

如你所见,B列(第一列)没有绿色

C列没有红色

D列有0为绿色

关于如何在中间为零的情况下执行 3 步缩放有什么想法吗?

谢谢

最佳答案

I can figure out how to do a 3 color scale in XLSX writer, but there doesnt seem to be an option (I can see) for midpoint being a number:

您可以使用min_typemid_typemax_type 参数来设置以下类型:

min        (for min_type only)
num
percent
percentile
formula
max (for max_type only)

参见 Conditional Format Options

所以在你的情况下它应该是这样的。

worksheet1.conditional_format('D2:D12', {'type': '3_color_scale',
'min_color': "red",
'mid_color': "yellow",
'max_color': "green",
'mid_type': "num"})

但是,我不确定这是否能解决您的总体问题。也许将其添加到您的示例中,如果它不起作用,则打开第二个问题。

您必须弄清楚的一件事是如何首先在 Excel 中执行您想要的操作。之后通常更容易弄清楚 XlsxWriter 中需要什么。

关于python - XLSX Writer Python- 3 以数字为中点的色标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43381230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com