Python 不带反转轴值的反转顺序条形图

Python 不带反转轴值的反转顺序条形图,python,excel,pandas,xlsxwriter,Python,Excel,Pandas,Xlsxwriter,我试图在excel中创建一个按相反顺序分类的条形图 下面是一个技巧: chart.set_y_axis({ 'reverse': True}) 但是x轴的值在图表的顶部,而我想把它们放在底部 我尝试颠倒顺序,然后通过以下方式移动x轴标签: chart.set_x_axis({ 'label_position': 'low'}) 这似乎没有任何作用。这很奇怪,因为如果我不反转y轴,只是将x轴的位置设置为“高”,那么它会将x轴的值移动到顶部。所以我不知道为什么它不会将其移动到底部 如何反转exc

我试图在excel中创建一个按相反顺序分类的条形图

下面是一个技巧:

chart.set_y_axis({ 'reverse': True})
但是x轴的值在图表的顶部,而我想把它们放在底部

我尝试颠倒顺序,然后通过以下方式移动x轴标签:

chart.set_x_axis({ 'label_position': 'low'})
这似乎没有任何作用。这很奇怪,因为如果我不反转y轴,只是将x轴的位置设置为“高”,那么它会将x轴的值移动到顶部。所以我不知道为什么它不会将其移动到底部

如何反转excel条形图中类别的顺序,同时将x轴值保留在底部

示例代码:

import pandas as pd

# Some sample data to plot.
list_data = [10, 20, 30, 20, 15, 30, 45]

# Create a Pandas dataframe from the data.
df = pd.DataFrame(list_data)

# Create a Pandas Excel writer using XlsxWriter as the engine.
excel_file = 'column.xlsx'
sheet_name = 'Sheet1'

writer = pd.ExcelWriter(excel_file, engine='xlsxwriter')
df.to_excel(writer, sheet_name=sheet_name)
workbook = writer.book
worksheet = writer.sheets[sheet_name]

# Create a chart object.
chart = workbook.add_chart({'type': 'bar'})

# Reverse Order
chart.set_y_axis({ 'reverse': True,
                   'label_position': 'low'
                   })
# Try and fail to get x-axis values on bottom instead of top
chart.set_x_axis({ 'label_position': 'low'
                   })
# Configure the series of the chart from the dataframe data.
chart.add_series({
    'values':     '=Sheet1!$B$2:$B$8',
})

# Insert the chart into the worksheet.
worksheet.insert_chart('D2', chart)

# Close the Pandas Excel writer and output the Excel file.
writer.save()

另外,不确定此处是否允许此类注释,但xlsxwriter是自切片面包以来最好的选择!

要在Excel(和xlsxwriter)中获得所需的输出类型,您需要使用“轴在最大类别处交叉”选项设置轴的交叉点

使用XlsxWriter,您可以使用axis
crossing
参数执行此操作。如下所示:

将熊猫作为pd导入
#一些要绘制的样本数据。
列表数据=[10,20,30,20,15,30,45]
#从数据创建数据帧。
df=pd.DataFrame(列表数据)
#使用XlsxWriter作为引擎创建Excel编写器。
excel_文件='column.xlsx'
图纸名称='Sheet1'
writer=pd.ExcelWriter(excel\u文件,engine='xlsxwriter')
df.to\u excel(编写器,工作表名称=工作表名称)
工作簿=writer.book
工作表=编写器.工作表[工作表名称]
#创建一个图表对象。
图表=工作簿。添加图表({'type':'bar'})
#逆序
图表。设置y轴({'reverse':True,
“交叉”:“最大值”})
#从dataframe数据配置图表系列。
图表.add_系列({'values':'=Sheet1!$B$2:$B$8'})
#将图表插入工作表。
工作表。插入图表(“D2”,图表)
#关闭Excel编写器并输出Excel文件。
writer.save()
输出


是否可以看到当前由您的代码生成的图表图像和所需结果之一?