我有一个这样的表:
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) 我有一个由以下代码生成的饼图,该代码将标签集中在顶部。有没有更好的方法来添加标签和箭头以便不重叠?我不能使用图例;我需要将标签放在每个切片旁边。
我知道在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)