公众号:PythonDataScience作者:东哥飞飞众所周知,Matplotlib是Python的可视化库,功能强大,可以绘制各种图形。一些常用用法分享了不久前Matplotlib出品的官方cheatsheet:Matplotlib官方cheatsheet手册公开,配套可视化代码已打包!但!今天我们不走寻常路,就挑几个有技巧的操作分享一下。1.SpanSelectorSpanSelector是Matplotlib中的一个鼠标widget,widgets是用来包含一些交互功能的python对象。SpanSelector可以通过鼠标框起来,方便查看选中区域的最大值和最小值。下面是代码,首先以创建一个基本的折线图为例。然后,我们调用SpanSelector方法并使用它来选择要显示最大值和最小值的区域。importmatplotlib.pyplotaspltfrommatplotlib.widgetsimportSpanSelectordefonselect(xmin,xmax):print(xmin,xmax)返回xmin,xmaxfig,ax=plt.subplots()ax.plot([1,2,3,4,5,6,7],[10,50,100,23,15,28,45])span=SpanSelector(ax,onselect,'horizo??ntal',useblit=True,rectprops=dict(alpha=0.5,facecolor='red'))plt.show()下面是具体的操作。2.BrokenBarhBroken的水平条形图是一种带有间隙的不连续图形,可用于数据值变化较大的情况,例如包含极端温度范围的数据集。在这种情况下,Broken的水平条形图是完美的,因为它们绘制了最大和最小范围。python模块matplotlib.broken_barh()用于绘制水平折线图。importmatplotlib.pyplotasplt#定义x和y范围xranges=[(5,5),(20,5),(20,7)]yrange=(2,1)#绘制断条图plt.broken_barh(xranges,yrange,facecolors='green')xranges=[(6,2),(17,5),(50,2)]yrange=(15,1)plt.broken_barh(xranges,yrange,facecolors='橙色')xranges=[(5,2),(28,5),(40,2)]yrange=(30,1)plt.broken_barh(xranges,yrange,facecolors='red')plt.xlabel('Sales')plt.ylabel('每月的天数')plt.show()3.表格演示Matplotlib的表格功能也可以在图形中显示表格。当我们想以条形图的形式快速查看表格中的值时,这尤其方便。表格可以放在图表的顶部、底部或侧面。将pandas导入为pd将numpy导入为np将matplotlib.pyplot导入为pltx=np.random.rand(5,8)*.7plt.plot(x.mean(axis=0),'-o',label='每列平均值')plt.xticks([])plt.table(cellText=[['%1.2f'%xxxforxxxinxx]forxxinx],cellColours=plt.cm.GnBu(x),loc='bottom')plt.show()4.水印图片有时我们觉得可视化的背景过于单调,想增加一些乐趣,比如在可视化上叠加数据相关的图片作为水印。下面我们以NBA的詹姆斯-金为例来试水,最后展示一下詹姆斯-金的数据,背景就是詹姆斯本人。首先,导入要使用的数据集、图像和必要的库pandas。importnumpyasnpimportmatplotlib.imageasimageimportmatplotlib.pyplotaspltimportpandasaspddf=pd.read_csv('income.csv')im=image.imread('Lebron_James.jpeg')#图像被过滤掉pandas仅由勒布朗组成的统计数据。lebron_james=df[df['Name']=='LeBronJames']然后如下操作,使用figimage加个水印就可以了。fig,ax=plt.subplots()ax.grid()ax.plot('Year','earnings($million)',data=lebron_james)ax.set_title("LeBronJames收入为US$(million)")fig.figimage(im,60,40,cmap='ocean',alpha=.2)plt.show()5、XKCDPlots下面的操作比较有意思(比较骚)。如果你想给Matplotlib绘图添加一些失真,你可以简单地调用pyplot对象上的xkcd()方法,如下所示。将熊猫导入为pd将matplotlib.pyplot导入为pltdf=pd.read_csv('https://raw.githubusercontent.com/parulnith/Website-articles-datasets/master/India%20GDP%20Growth%20Rate%20.csv',parse_dates=['Year'])df['Year']=df['Year'].apply(lambdax:pd.Timestamp(x).strftime('%Y'))#callingxkcd()方法plt.xkcd(scale=5,length=400)df.plot(x='Year',y='GDPGrowth(%)',kind='bar')plt.ylabel('GDPGrowth(%)')plt.xticks(rotation=-20)plt.figure(figsize=(10,8))plt.show()文章参考:https://towardsdatascience.co...先分享这些,如果觉得有帮助请多多分享和一个喜欢。欢迎大家关注我的原创微信公众号PythonDataScience,专注于编写基于Python的数据算法、机器学习、深度学习硬核干货。
