双y轴可视化数据分析图表
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.use('TkAgg')
import pandas as pd
df=pd.read_excel('mrbook.xlsx')
x=[1,2,3,4,5,6]
y1=df['销量']
y2=df['rate']
fig = plt.figure()
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
ax1 = fig.add_subplot(111)
plt.title('销量情况对比')
plt.xticks(x,['1月','2月','3月','4月','5月','6月'])
ax1.bar(x,y1,label='left')
ax1.set_ylabel('销量(册)')
ax2 = ax1.twinx()
ax2.plot(x,y2,color='black',linestyle='--',marker='o',linewidth=2,label=u"增长率")
ax2.set_ylabel(u"增长率")
for a,b in zip(x,y2):
plt.text(a, b+0.02, '%.2f' % b, ha='center', va= 'bottom',fontsize=10,color='red')
plt.show()

颜色渐变饼状图的实现
from matplotlib import font_manager as fm
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.use('TkAgg')
plt.rcParams['font.sans-serif']=['SimHei']
plt.style.use('ggplot')
from matplotlib import cm
shapes = ['天津', '江西省', '安徽省', '云南省', '福建省', '河南省', '辽宁省',
'重庆', '湖南省', '四川省', '北京', '上海', '广西壮族自治区', '河北省',
'浙江省', '江苏省', '湖北省', '山东省', '广东省']
values = [287,383,842,866,1187,1405,1495,1620,1717,
2313,2378,3070,4332,5841,6482,7785,9358,9818,20254]
s = pd.Series(values, index=shapes)
labels = s.index
sizes = s.values
fig, ax = plt.subplots(figsize=(6,6))
colors = cm.rainbow(np.arange(len(sizes))/len(sizes))
patches, texts, autotexts = ax.pie(sizes, labels=labels, autopct='%1.0f%%',
shadow=False, startangle=170, colors=colors)
ax.axis('equal')
ax.set_title('各地区线上图书销售占比图',loc='left')
proptease = fm.FontProperties()
proptease.set_size('small')
plt.setp(autotexts, fontproperties=proptease)
plt.setp(texts, fontproperties=proptease)
plt.show()

等高线图的实现
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.use('TkAgg')
def f(x, y):
return (1 - x / 2 + x ** 5 + y ** 3) * np.exp(-x ** 2 - y ** 2)
n = 256
x = np.linspace(-3, 3, n)
y = np.linspace(-3, 3, n)
X, Y = np.meshgrid(x, y)
plt.contourf(X, Y, f(X, Y))
plt.show()
