python 标签 轴_python-3.x – 在图中用轴隐藏的轴标签?

本文探讨了在使用Matplotlib绘制极地蜘蛛图时遇到的轴标签显示问题,并提供了一种解决方案来确保标签始终位于网格线上方,以便更好地展示数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正试图制作一个极地’sypder’情节,但我对轴标签有一些问题. xaxis tick标签似乎总是在y轴网格下面的一个层上(字母被网格线覆盖,如下图所示),我希望它们在顶部.

我尝试设置zorders但没有成功.

如果我将绘制线的zorder设置为高于2,则它们会在轴和网格的顶部(就图层而言)…但我仍然希望标签在图的顶部可见.如果我将它们设置在2以下,则线条会在网格下方.设置网格或刻度标签的zorder似乎没有效果.

这是我的尝试:你可以看到网格的红线最终在文本“行业”的顶部,而网格的灰线保持在下面.我希望’行业’能够在线上和线上都处于领先地位

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

import random

data = random.sample(range(100), 5)

data[0] = 100

data[3] = 50

index = ['industry', 'residential', 'agriculture', 'transport', 'other']

df1 = pd.DataFrame(data, index=index, columns=['data'])

df2 = pd.DataFrame(np.array(data)/2, index=index, columns=['data'])

fig = plt.figure()

ax = fig.add_subplot(111, projection="polar")

ax.grid(True)

ax.yaxis.grid(color='r')

ax.xaxis.grid(color='#dddddd')

for spine in ax.spines.values():

spine.set_edgecolor('None')

theta = np.arange(len(df1))/float(len(df1))*2.*np.pi

l1, = ax.plot(theta, df1["data"], color="gold", marker="o", label=None, zorder=1) # , zorder = -3)

l2, = ax.plot(theta, df2["data"], color='tomato', marker="o", label=None, zorder=1.1) #, zorder =-2)

def _closeline(line):

x, y = line.get_data()

x = np.concatenate((x, [x[0]]))

y = np.concatenate((y, [y[0]]))

line.set_data(x, y)

[_closeline(l) for l in [l1, l2]]

ax.fill(theta, df1["data"], "gold", alpha=1, zorder=1)

ax.fill(theta, df2["data"], 'tomato', alpha=1, zorder=1.1)

ax.set_rlabel_position(216)

ax.set_xticks(theta)

ax.set_xticklabels(df2.index, fontsize=12)#, zorder=1)

legend = plt.legend(handles=[l1,l2], labels =['first','second'], loc='lower right')

plt.title("data [unit]", fontsize = 16, y = 1.2)

plt.savefig('atlas//trial2.png', bbox_inches='tight', dpi = 300)

plt.show()

PFuRG.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值