我有这样一个数据帧:
batsman balls runs strike_rate 6's 4's Team Highest_score
A Ashish Reddy 196 280 142.857143 16 15 DC 10
A Ashish Reddy 196 280 142.857143 16 15 SRH 36
A Chandila 7 4 57.142857 0 0 RR 4
A Chopra 75 53 70.666667 7 0 KKR 24...
我想做的是绘制一个散点图,这样我就可以比较两个击球手。所以我写了一个函数:
batsman1='MS Dhoni'
batsman2='V Kohli'
def batsman_comparator():
sns.FacetGrid(balls,hue='Team',size=8).map(mlt.scatter, "runs", "strike_rate", alpha=0.5).add_legend()
bats1=balls[balls['batsman']==batsman1]
bats2=balls[balls['batsman']==batsman2]
mlt.scatter(bats1["runs"],bats1["strike_rate"],s=50,c='#55ff33')
mlt.text(bats1["runs"],bats1["strike_rate"],batsman1,
fontsize=10, weight='bold', color='#f46d43')
mlt.scatter(bats2["runs"],bats2["strike_rate"],s=50,c='#f73545')
mlt.text(bats2["runs"],bats2["strike_rate"], batsman2,
fontsize=10, weight='bold', color='#ff58fd')
mlt.show()
batsman_comparator()
好的,通过使用这个函数,我可以得到正确的曲线图。 但是当我加上mlt.文本()为了显示击球手在特定点上的名字,我得到一个错误:
TypeError: cannot convert the series to <class 'float'>
现在开始移除mlt.文本()功能正常。如何使用mlt.文本(). 其他选择也可以。。你知道吗
您似乎没有正确使用
mlt.text()
。请参阅Matplotlib文档here。我相信text()
函数只能在一个点上应用。我想你可能是在找mlt.annotate()
。This堆栈溢出问题可能会有帮助。你知道吗相关问题 更多 >
编程相关推荐