小编Col*_* MG的帖子

更新符号长度小于 3 个字符的 KDB+/Q

我有一个这样的表:

test:([]column1:`A`B`C`D`E;column2:`Consumer`RealEstate`27`85`Technology)
Run Code Online (Sandbox Code Playgroud)

我需要编写一个更新查询,其中 column2 的字符数为 2 或更少,但我找不到任何方法来引用在 where 子句中使用的符号的字符长度。我将如何编写这样的查询,以便我的结果如下?

test:([]column1:`A`B`C`D`E;column2:`Consumer`RealEstate`NewCategory`NewCategory`Technology)
Run Code Online (Sandbox Code Playgroud)

kdb sql-update q

2
推荐指数
1
解决办法
695
查看次数

防止饼图中标签重叠 Python Matplotlib

我有一个由以下代码生成的饼图,该代码将标签集中在顶部。有没有更好的方法来添加标签和箭头以便不重叠?我不能使用图例;我需要将标签放在每个切片旁边。

我知道在Excel中有一个“最适合”选项可以解决这样的问题(防止饼图中数据标签重叠),但我想知道是否有任何Python等效项或方法可以在图表周围等距标签但保持线条切片

import matplotlib.pyplot as plt
import numpy as np

bbox_props=dict(boxstyle='square,pad=0.3',fc ='w',ec='k',lw=0.72)
kw=dict(xycoords='data',textcoords='data',arrowprops=dict(arrowstyle='-'),zorder=0,va='center')

fig1,ax1=plt.subplots()
labels=["first\n1.8%","second\n1.3%","third\n10.5%","fourth\n13.8%","fifth\n7.8%","sixth\n6.7%","seventh\n9.9%","eighth\n12.2%","ninth\n12.7%","tenth\n10.9%","eleventh\n7.6%","twelfth\n4.8%"]
values=[1.8,1.3,10.5,13.8,7.8,6.7,9.9,12.2,12.7,10.9,7.6,4.8]
wedges,texts=ax1.pie(values,explode=[0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01],labeldistance=1.2,startangle=90)
for i,p in enumerate(wedges):
    ang=(p.theta2-p.theta1)/2. +p.theta1
    y=np.sin(np.deg2rad(ang))
    x=np.cos(np.deg2rad(ang))
    horizontalalignment={-1:"right",1:"left"}[int(np.sign(x))]
    connectionstyle="angle,angleA=0,angleB={}".format(ang)
    kw["arrowprops"].update({"connectionstyle":connectionstyle})
    ax1.annotate(labels[i],xy=(x, y),xytext=(1.35*np.sign(x),1.4*y),
                horizontalalignment=horizontalalignment,**kw)
    
fig1.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python matplotlib pie-chart

1
推荐指数
1
解决办法
4642
查看次数

标签 统计

kdb ×1

matplotlib ×1

pie-chart ×1

python ×1

q ×1

sql-update ×1