图中轴标签隐藏了轴标签吗?

2024-03-17

我正在尝试制作极坐标“sypder”图,但轴标签存在一些问题。 x 轴刻度标签似乎总是位于 y 轴网格下方的一层上(字母被网格线覆盖,如下图所示),我希望它们位于顶部。

我尝试设置 zorder 但没有成功。 如果我将绘制的线的 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()

好吧,这解决了我的问题,尽管这不是一个很好的答案。

在上面的脚本中我替换ax.set_xticklabels(df2.index, fontsize=12)使用以下内容替换轴标签的等效文本。

for it in np.arange(len(theta)):   
    txt = ax.text(theta[it], maxy*1.1, index[it], va = 'center', ha = 'center', fontsize = 12)

ax.set_xticklabels('')

“标签”现在位于轴和网格上方。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图中轴标签隐藏了轴标签吗? 的相关文章

随机推荐

  • fullCalendar 多日活动开始和结束时间

    多日活动很少有一个开始和一个结束时间 例如 伯明翰动漫展可能会持续三天 但你不能在凌晨 1 点出现 活动举办的三天中 每一天都有单独的开始和结束时间 我无法在文档中找到有关每个事件的多个开始和结束时间的任何内容 还有其他人吗 Edit 如果
  • 使用 Matplotlib 绘制网格

    我想在Python中使用Matplotlib绘制一个自定义的网格 我知道的np meshgrid函数 可以使用它来获取我想要连接的不同点的数组 但我不确定如何绘制网格 代码示例 x np linspace 0 100 100 y np li
  • 如何比较两个 X509Certificate2 c#

    如何比较两个 X509Certificate2 对象 我需要查找两个证书是否相同 它用于用户身份验证目的 我需要查找两个证书是否属于同一个人 我可以使用其序列号或指纹属性吗 或者还有其他方法吗 另外我对此很陌生 想知道使用 X509Cert
  • 为什么盒子阴影和元素之间有间隙?

    当将鼠标悬停在 Chrome 76 0 3809 100 64 位 中的按钮上时 框阴影和 img 之间会出现微弱的间隙 为什么会发生这种情况以及如何修复它 这是一张图片 以防您在代码片段中看不到它 body background colo
  • Java 中的空布局有什么问题? [复制]

    这个问题在这里已经有答案了 Bonjour 在花了无数时间在这个网站上寻找在屏幕上拖动组件的代码后 我注意到答案中出现了一个奇怪的趋势 每个人都对空布局的声音感到不寒而栗 所以我问 大家都有什么问题吗 我编写代码的时间不超过三个月 使用 S
  • 如何使用PHP处理多个文件上传

    我想使用 PHP 上传文件 但问题是我不知道要上传多少个文件 我的问题是如果我使用的话如何上传文件file
  • 如何在单个动画中缩放和旋转视图

    我试图通过使其从屏幕中心出现同时增长到其完整尺寸来呈现视图 同时以 3D 方式围绕 x 轴旋转它 当我创建视图时 我对其应用变换以确保它收缩并旋转以开始 它太小 实际上不可见 然后我尝试使用 CATransform3D 如下所示 CABas
  • 我如何知道golang中结构体的长度?

    我是 Golang 新手 我正在尝试从结构中获取许多属性 例如 type Client struct name string 1 lastName string 2 age uint 3 func main client Client na
  • 我希望“(int)null”返回0

    我怎样才能得到 0 作为整数值 int null EDIT 1 我想创建一个函数 它将返回各自数据类型中空表示的默认值 EDIT 2 我怎样才能从事这个工作scenario用于使用default 整数 值 Where 值可以为空或任何整数价
  • Angular ng-show / ng-hide 无法与 ng-bind-html 一起正常工作

    我想为 html 字符串中的元素设置 ng show 或 ng hide 并将其传递给 ng bind html 查看 但 ng show ng hide 不起作用 我的元素始终可见 这是我的控制器代码 scope my messageTr
  • jsch ChannelExec 和 ChannelShell 之间的确切区别是什么?

    有人可以告诉我之间的区别吗ChannelExec ChannelShell shell 和 exec 通道 http sourceforge net apps mediawiki jsch index php title Shell Exe
  • 使用 Sleep() 时 Perl 打印功能无法正常工作

    我有以下代码来打印 每秒模拟一个进度条 num 15 while num sleep 1 print 我现在遇到的问题是 每次循环后不打印字符 相反 所有 15 个 循环退出后立即打印 但是 如果我打印 n 它就可以正常工作 但 每次都会打
  • 阻止用户使用 jquery 或 javascript 重新加载页面 [重复]

    这个问题在这里已经有答案了 可能的重复 使用 jQuery Javascript 防止任何形式的页面刷新 https stackoverflow com questions 3527041 prevent any form of page
  • 如何摆脱“打印中的宽字符”?

    我有文件 tmp xxx与下一个内容 00000000 D0 BA D0 B8 D1 80 D0 B8 D0 BB D0 B8 D0 BA 当我读取文件内容并打印它时 出现错误 Wide character in print at 来源是
  • scikit-learn 中预计算内核的网格搜索中的嵌套交叉验证

    我有一个大小为 NxN 的预先计算的内核 我使用 GridSearchCV 来调整 SVM 的 C 参数 其中 kernel precompulated 如下 C range 10 np arange 2 9 param grid dict
  • PCL 上的 TPL,适用于 PCL 配置文件 78 的 MvvmCross

    尝试使用PCL for mvvmcross通过 Profile 78 与 TPL 合作 关于问题mvvmcross 的 PCL 上的 TPL https stackoverflow com questions 16914738 tpl on
  • Spring Boot + JPA2 + Hibernate - 启用二级缓存

    我使用 Spring Boot 1 2 5 和 JPA2 来注释实体 并将 hibernate 作为底层 JPA 实现 我想在该设置中使用二级缓存 因此实 体被注释为 javax persistence Cacheable 我还在 appl
  • Mac OS Xocks代理环境变量

    我知道可以通过网络应用程序设置袜子代理服务器 并且有一个 Mac 特定实用程序可以设置它 但如果可能的话 我更喜欢将袜子代理服务器设置为环境变量 有谁知道合适的export环境 如果有人想知道这对于 http 代理来说是可能的 例如 exp
  • NodeJS 和 C# 中的 AES256 加密/解密

    我对以下问题的结果采取了一些自由态度 NET 中的 AES 加密并使用 Node js 加密解密 https stackoverflow com questions 17306552 aes encrypt in net and decry
  • 图中轴标签隐藏了轴标签吗?

    我正在尝试制作极坐标 sypder 图 但轴标签存在一些问题 x 轴刻度标签似乎总是位于 y 轴网格下方的一层上 字母被网格线覆盖 如下图所示 我希望它们位于顶部 我尝试设置 zorder 但没有成功 如果我将绘制的线的 zorder 设置