乐趣区

关于matplotlib:安利-5-个拍案叫绝的-Matplotlib-骚操作

公众号:Python 数据迷信
作者:东哥腾飞

大家都晓得,Matplotlib 是 Python 的可视化库,性能很强,能够绘制各种图。一些惯例用法前不久分享过 Matplotlib 官网出品的 cheatsheet:Matplotlib 官网小抄手册公开,配套可视化代码已打包!

然而!明天咱们不走寻常路,专挑几个贼骚的操作分享下.

1. Span Selector

Span SelectorMatplotlib 中的鼠标小部件,widgets是用于蕴含一些交互性能的 python 对象。Span Selector能够通过鼠标框选,不便地查看选定区域的最大值和最小值。

上面是代码,首先创立一个根本折线图作为例子。而后,咱们调用 SpanSelector 办法并应用它来抉择一个区域,而后在该区域中显示最大值和最小值。

import matplotlib.pyplot as plt
from matplotlib.widgets import SpanSelector
def onselect(xmin, xmax):
    print(xmin, xmax)
    return xmin, xmax
fig, ax = plt.subplots()
ax.plot([1,2,3,4,5,6,7], [10, 50, 100, 23,15,28,45])
span = SpanSelector(ax, onselect, 'horizontal', useblit=True, rectprops=dict(alpha=0.5, facecolor='red'))       
plt.show()

上面是具体操作。

2. Broken Barh

Broken的程度条形图是不间断具备间隙的图,它可用于数据值相差很大的状况下,例如,蕴含极其温度范畴的数据集。在这种状况下,Broken 的程度条形图十分适合,因为它们能够同时绘制最大和最小范畴。

python 模块 matplotlib.broken_barh() 用于绘制 Broken 的程度条形图。

import matplotlib.pyplot as plt 
#Defining the x and y ranges 
xranges = [(5,5), (20,5),(20,7)] 
yrange = (2,1) 
#Plotting the broken bar chart 
plt.broken_barh(xranges, yrange, facecolors='green') 
xranges = [(6,2), (17,5),(50,2)] 
yrange = (15,1) 
plt.broken_barh(xranges, yrange, facecolors='orange') 
xranges = [(5,2), (28,5),(40,2)] 
yrange = (30,1) 
plt.broken_barh(xranges, yrange, facecolors='red') 
plt.xlabel('Sales') 
plt.ylabel('Days of the Month') 
plt.show()

3. Table Demo

Matplotlib的表格性能也是能够在图中显示表格的。当咱们心愿以条形图的模式疾速查看表格中的值时,这特地不便。表格能够搁置在图表的顶部,底部或侧面。

import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt 
x = np.random.rand(5, 8)*.7 
plt.plot(x.mean(axis=0), '-o', label='average per column') 
plt.xticks([]) 
plt.table(cellText=[['%1.2f' % xxx for xxx in xx] for xx in x],cellColours=plt.cm.GnBu(x),loc='bottom') 
plt.show()


4. Watermark Images

有时候咱们感觉可视化的背景太枯燥了,想减少点趣味性,比方将与数据相干的图像作为水印笼罩到可视化图形上。上面就以 NBA 的詹皇为例试试水,最初呈现出詹皇的数据,同时背景是詹皇自己。

首先,导入要用的数据集,图片和必要的库pandas

import numpy as np 
import matplotlib.image as image 
import matplotlib.pyplot as plt 
import pandas as pd 
df = pd.read_csv('income.csv') 
im = image.imread('Lebron_James.jpeg') # Image

pandas 过滤掉仅由勒布朗组成的数据。

lebron_james = df[df['Name']=='LeBron James']

而后像上面这样操作,应用 figimage 增加水印就 ok 了。

fig, ax = plt.subplots() 
ax.grid() 
ax.plot('Year','earnings ($ million)',data=lebron_james) 
ax.set_title("LeBron James earnings in US$(millions)") 
fig.figimage(im, 60, 40,cmap='ocean', alpha=.2) 
plt.show()

5. XKCD Plots

上面这个操作更有趣味性(更骚)。

如果你想让 Matplotlib 图上增加一些扭曲,能够简略地 xkcd()pyplot对象上调用办法,如下所示。

import pandas as pd 
import matplotlib.pyplot as plt 
df = 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(lambda x: pd.Timestamp(x).strftime('%Y')) 
#calling xkcd() method 
plt.xkcd(scale=5, length=400) 
df.plot(x='Year',y='GDP Growth (%)',kind='bar') 
plt.ylabel('GDP Growth (%)') 
plt.xticks(rotation=-20) 
plt.figure(figsize=(10,8)) 
plt.show()

文章参考:
https://towardsdatascience.co…

先分享这些,如果感觉有帮忙,还请 多分享 点个赞

欢送大家关注我的原创微信公众号 Python 数据迷信,专一于写基于 Python 的数据算法、机器学习、深度学习硬核干货。

退出移动版