# -*- coding: utf-8 -*-
# @File : 数据可视化(Data_visualization).py
# @Date : 2019-02-22
# @Author : Zhang.Cookie
import numpy as np
import matplotlib.pyplot as mp
#数据可视化
x = np.linspace(-np.pi,np.pi,2000)
cos_y = np.cos(x) / 2
sin_y = np.sin(x)
mp.figure('Cookie image',figsize = (12,8),dpi=60,facecolor='lightgray')
#mp.figure(图形对象名,figsize = 窗口大小,dpi=分辨率,facecolor=颜色)
mp.title('Cookie image')
xo = np.pi * 3 / 4
yo_cos = np.cos(xo) / 2 #np 可对矢量和标量操作
yo_sin = np.sin(xo)
#mp.xlim(x.min(),x.max())
#mp.ylim(sin_y.min(),sin_y.max())#去掉空白
#mp.yticks([-1,-0.75],['a','b']) #刻度位置数组,刻度文本数组
#mp.xticks([-3,-2,-1],['π'])
#mp.xticks([-3,-2,-1],[r'$-\pi$',r'$-\frac{\pi}{2}$']) #加上r是去掉python转义,加$$代表要做格式化转义,-π,2/π
ax = mp.gca() #处理轴的函数
ax.spines['left'].set_position(('data',0))
ax.spines['bottom'].set_position(('data',0))
#ax.spines['right'].set_color(("red")) #指定轴颜色
ax.spines['right'].set_color(("none"))
ax.spines['top'].set_color(("none"))
mp.plot(x,cos_y, linestyle = '--',linewidth = 6 ,color = 'dodgerblue',label =r'$y=\frac{1}{2}coas(x)$' )
#(水平坐标数组,垂直坐标数组,线型,线宽,线色,图例文本) 画图函数
mp.plot(x,sin_y,label = r'$y=sin(x)$')
mp.plot([xo,xo],[yo_cos,yo_sin],linestyle='--',linewidth=1 ,color = 'dodgerblue') #二点间画线
mp.legend(loc = 'upper left') #显示图例在那个位置
mp.scatter([xo,xo],[yo_cos,yo_sin],s =120,edgecolor="limegreen",facecolor = "white",zorder = 4)
#(水平坐标数组,垂直坐标数组,点型,大小,勾边色,填充色,z序(0,1)) 画点函数
mp.annotate(r'$\frac{1}{2}cos(\frac{3\pi}{4})=-\frac{\sqrt{2}}{4}$', #\frac是分数,\sqrt根号
xy=(xo,yo_cos),xycoords='data', #data 数据坐标系
xytext = (-90,-40),textcoords = 'offset points', #向下偏移,pffset points水平坐标系
fontsize = 14,
arrowprops = dict(arrowstyle = '- >',connectionstyle='arc3,rad=.2')) #arc3圆弧,rad半径
#(备注文本,xy=目标位置,xycoords=目标坐标系,xytest=文本位置,textcoords=文本坐标系,fontsize=字体大小,arrowprops=箭头属性)
mp.annotate(r'$sin(\frac{3\pi}{4})=\frac{\sqrt{2}}{2}$', #\frac是分数,\sqrt根号
xy=(xo,yo_sin),xycoords='data', #data 数据坐标系
xytext = (20,20),textcoords = 'offset points',
fontsize = 14,
arrowprops = dict(arrowstyle = '- >',connectionstyle='arc3,rad=.2')) #arc3圆弧,rad半径
mp.show()
ps:使用的函数
#图形对象 figure
#轴 spines
#图例 label
#二点连线|画线,plot
#备注 annotate
代码运行效果图: