一、导入前图形参数配置

"""配置参数"""
from __future__ import division, print_function # 引入3.x版本的除法和打印
from matplotlib import pyplot as plt
import pandas as pd
import numpy as np
# 在notebook中显示绘图结果
%matplotlib inline

# 设置一些全局的资源参数,可以进行个性化修改
import matplotlib
# 设置图片尺寸 14" x 7"
# rc: resource configuration
matplotlib.rc('figure', figsize = (14, 7))
# 设置字体 14
matplotlib.rc('font', size = 14)
# 不显示顶部和右侧的坐标线
matplotlib.rc('axes.spines', top = False, right = False)
# 不显示网格
matplotlib.rc('axes', grid = False)
# 设置背景颜色是白色
matplotlib.rc('axes', facecolor = 'white')

二、绘图细节

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.font_manager import FontProperties #字体管理器
# data["用户使用频率"].plot.bar()
plt.rcParams["figure.figsize"] = (5,8)   # 设置图形大小
# 坐标轴上移

"""
df.plot(x,y) :    折线图
df.plot.bar(): 纵向条形图,   df.plot.barh() : 横向条形图 , df.plot.bar(stacked=True) : 堆积条形图 
df.plot.hist(x,bins=20) : 直方图,可以指定bins的数量值, df.hist(bins=20) 为每一列生成一个直方图
df.plot.box()
df.plot.box(): 每列中值的箱型图分布,df.boxplot() : 每列中值的箱型图分布,有网格线
df.plot.area():面积图
df.plot.scatter(x = "a",y = "b")  : a,b两列之间的散点图
df.corr() # pearson相关系数,出数据,不画图
import seaborn as sns
sns.heatmap(data.corr()) :  相关性图形
df["a"].plot.pie(subplots=True) : 取单列观察数据饼图   df.plot.pie(y='b',subplots=True,figsize=(10, 10)),data.plot.pie(subplots=True):多个饼图
"""
# data.plot()  # x轴默认为data index,  选择data["a"]作为y轴数据  ,plot.bar() 图形类型

ax = plt.subplot(111)
# # ax = plt.subplot(2,2,1)
# ax.spines['right'].set_color('none')            # 去掉右边的边框线
# ax.spines['top'].set_color('none')              # 去掉上边的边框线

# ax.xaxis.set_ticks_position('bottom')            # 移动下边边框线,相当于移动 X 轴
# ax.spines['bottom'].set_position(('data', 0))    # 移动下边边框线,相当于移动 X 轴
# ax.yaxis.set_ticks_position('left')              # 移动左边边框线,相当于移动 y 轴
# ax.spines['left'].set_position(('data', 0))      # 移动左边边框线,相当于移动 y 轴  


# plt.xlim(x.min()*1.1, x.max()*1.1)    # 设置 x, y 轴的刻度取值范围
# plt.ylim(-1.5, 4.0)       # 设置 x, y 轴的刻度取值范围
# plt.axis([0, 8, 0, 20])     #设置轴的区间

# plt.xticks([2, 4, 6, 8, 10], [r'two', r'four', r'six', r'8', r'10'])  # 设置 x, y 轴的刻度标签值
# plt.yticks([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0],        
#     [r'-1.0', r'0.0', r'1.0', r'2.0', r'3.0', r'4.0'])    # 设置 x, y 轴的刻度标签值

# plt.xticks(rotation=40,color='red',backgroundcolor='b')#设置x轴标签字体颜色、背景色、倾斜度
# plt.yticks(rotation=40,color='red')#设置x轴标签字体颜色、背景色、倾斜度

# plt.title(r'$the \ function \ figure \ of \ cos(), \ sin() \ and \ sqrt()$', fontsize=19)   # 设置英文标题
# plt.xlabel(r'$the \ input \ value \ of \ x$', fontsize=18, labelpad=88.8)                   # 设置英文标题
# plt.ylabel(r'$y = f(x)$', fontsize=18, labelpad=12.5)                                       # 设置英文标题

plt.title(u"散点图测试", fontproperties='SimHei')                                             # 设置中文标题
plt.xlabel('横坐标', fontproperties='SimHei')                                                 # 设置中文标题
plt.ylabel('纵坐标', fontproperties='SimHei',fontsize=20, labelpad=88.8)   # 设置中文标题,fontsizeze字体大小,labelpad距离坐标轴距离

plt.text(0.8, 0.9, r'$x \in [0.0, \ 10.0]$', color='k', fontsize=15)   # 在数据图中添加文字描述 text
plt.text(0.8, 0.8, r'$y \in [-1.0, \ 4.0]$', color='k', fontsize=15)   # 在数据图中添加文字描述 text

# plt.annotate(r'$2\sqrt{2}$', xy=(8, np.sqrt(8)), xytext=(8.5, 2.2), fontsize=16, color='#090909', arrowprops=dict(arrowstyle='->', connectionstyle='arc3, rad=0.1', color='#090909')) # 数据图中给特殊点添加注解 annotate:

plt.legend(['cos(x)', 'sin(x)', 'sqrt(x)'], loc='upper right')
plt.grid(True)   # 网格线开关

plt.show()    # 显示
savefig('../figures/plot3d_ex.png',dpi=48)    # 保存,前提目录存在