问题描述
我已经开发了一个绘制极谱图的脚本。极坐标图显示5个不同属性(data1,...,data5)的中位数。
接下来,我将每个属性(点样式)的值添加到中位数。
我不知道如何调整脚本...非常感谢您的支持...!
今天
脚本:
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
from statistics import mean,median,stdev,variance
import random
Start = 0
Stop = 20
limit = 10
data1=[random.randint(Start,Stop) for iter in range(limit)]
data2=[random.randint(Start,Stop) for iter in range(limit)]
data3=[random.randint(Start,Stop) for iter in range(limit)]
data4=[random.randint(Start,Stop) for iter in range(limit)]
data5=[random.randint(Start,Stop) for iter in range(limit)]
median =[median(data1),median(data2),median(data3),median(data4),median(data5)]
print(data1)
lObjectsALLcnts = median#[1,1,10,5,2,3,14,15,20]
lObjectsALLlbls = ['median data1','median data2','median data3','median data4','median data5']
iN = len(lObjectsALLcnts)
arrCnts = np.array(lObjectsALLcnts)
theta1=np.arange(0,2*np.pi,2*np.pi/iN)
width = (2*np.pi)/iN *.9 # Breite der Balken
bottom = 50 # Durchmesser
fig = plt.figure(figsize=(20,20))
ax = fig.add_axes([0.1,0.1,0.75,0.75],polar=True)
bars = ax.bar(theta1,arrCnts,width=width,bottom=bottom)
#ax.set_theta_offset(1.57079)
plt.axis('off')
rotations = np.rad2deg(theta1)
y0,y1 = ax.get_ylim()
for x,bar,rotation,label in zip(theta1,bars,rotations,lObjectsALLlbls):
offset = (bottom+bar.get_height())/(y1-y0)
lab = ax.text(0,label,transform=None,ha='center',va='center',fontsize=20)
renderer = ax.figure.canvas.get_renderer()
bBox = lab.get_window_extent(renderer=renderer)
invb = ax.transData.inverted().transform([[0,0],[bBox.width,0] ])
lab.set_position((x,offset+(invb[1][0]-invb[0][0])/2.*2.7 ) )
lab.set_transform(ax.get_xaxis_transform())
lab.set_rotation(rotation)
plt.show()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)