1 Python散点密度图
import matplotlib.pyplot as plt
from scipy.stats import gaussian_kde
from mpl_toolkits.axes_grid1 import make_axes_locatable
import numpy as np
x = np.random.normal(size=10000)
y = np.random.normal(size=10000)
xy = np.vstack([x,y])
z = gaussian_kde(xy)(xy)
idx = z.argsort()
x, y, z = x[idx], y[idx], z[idx]
fig, ax = plt.subplots(figsize=(7,5),dpi=100)
maxNum = max(x)
minNum = min(x)
ax.plot(x, x, color='r', linewidth=2)
plt.xlim(minNum, maxNum)
plt.ylim(minNum, maxNum)
xcord=x
ycord=y
(xcord*ycord).mean()
xcord.mean()* ycord.mean()
pow(xcord,2).mean()
pow(xcord.mean(),2)
m = ((xcord*ycord).mean() - xcord.mean()* ycord.mean())/(pow(xcord,2).mean()-pow(xcord.mean(),2))
c = ycord.mean() - m*xcord.mean()
y1=m*x+c
scatter=ax.scatter(x,y,marker='o',c=z,edgecolors='',s=15,label='LST',cmap='Spectral_r')
divider=make_axes_locatable(ax)
cax = divider.append_axes("right",size="3%",pad=0.1)
cbar = fig.colorbar(scatter,cax=cax,extend='both',aspect=30,fraction=.03,pad=0.01)
ax.plot(x,y1,color='k', linewidth=2)
plt.savefig('F:/Rpython/lp36/plot82.1.png',dpi=800,bbox_inches='tight',pad_inches=0)
plt.show()
print('Finished.')


2 基于Python的Savitzky-Golay滤波器
import numpy as np
import matplotlib.pylab as plt
'''
其它的一些知识点:
raise:当程序发生错误,python将自动引发异常,也可以通过raise显示的引发异常
一旦执行了raise语句,raise语句后面的语句将不能执行
'''
def moving_average(interval, windowsize):
window = np.ones(int(windowsize)) / float(windowsize)
re = np.convolve(interval, window, 'same')
return re
def LabberRing():
t = np.linspace(-4, 4, 100)
print('t=', t)
y = np.sin(t) + np.random.randn(len(t)) * 0.1
print('y=', y)
plt.plot(t, y, 'k')
y_av = moving_average(y, 10)
plt.plot(t, y_av, 'b')
plt.xlabel('Time')
plt.ylabel('Value')
plt.grid(True)
plt.savefig('F:/Rpython/lp36/plot79.png',dpi=500,bbox_inches='tight'
,pad_inches=0)
plt.show()
return
LabberRing()

3 Python一元线性回归1
import numpy as np
import pylab as pl
from matplotlib import pyplot as plt
Size=100
x=np.linspace(1,Size,Size)
data = np.random.randint(1, Size, Size)
print(data)
plt.plot(x,data)
from scipy.signal import savgol_filter
y = savgol_filter(data,5,3,mode='nearest')
plt.plot(x, y,'b',label='savgol')
def plot_trendline(x, y, n, style):
parameter = np.polyfit(x, y, n)
f = np.poly1d(parameter)
pl.plot(x, f(x), style,lw=1)
plt.text(15,90,'y=%.4fx'%parameter[0]+'+ %.4f'%parameter[1],fontsize=12)
plot_trendline(x,data,1,"r--")
plt.savefig('F:/Rpython/lp36/plot78.png',dpi=500,bbox_inches='tight',pad_inches=0)
plt.show()
print('Finished.')

4 Python一元线性回归2
import numpy as np
import pylab as pl
from matplotlib import pyplot as plt
from matplotlib import rcParams
config = {"font.family":'Times New Roman',"font.size":12,"mathtext.fontset":'stix'}
rcParams.update(config)
x=np.linspace(-4,4,50)
data=np.sin(x)+np.random.randn(len(x))*0.1
print(data)
plt.plot(x,data,c='k',lw=2)
from scipy.signal import savgol_filter
y = savgol_filter(data,5,3,mode='nearest')
plt.plot(x, y,'b',lw=2,label='savgol')
def plot_trendline(x,y,n,style):
parameter=np.polyfit(x,y,n)
f=np.poly1d(parameter)
pl.plot(x,f(x),style,lw=2)
R2=round(np.corrcoef(y,f(x))[0,1]**2,2)
plt.text(0.25,-0.4,'y=%.4fx'%parameter[0]+'+ %.4f'%parameter[1],fontsize=12)
plt.text(0.25,-0.3,r'$R^2=$'+str(R2),fontsize=12)
print(parameter)
print(f)
print('r^2为',round(np.corrcoef(y,f(x))[0,1]**2,2))
plot_trendline(x,data,1,"r-")
plt.savefig('F:/Rpython/lp36/plot81.png',dpi=800,bbox_inches='tight',pad_inches=0)
plt.show()
print('Finished.')

5 Python一元线性回归3
import numpy as np
import pylab as pl
from matplotlib import pyplot as plt
from matplotlib import rcParams
config = {"font.family":'Times New Roman',"font.size":12,"mathtext.fontset":'stix'}
rcParams.update(config)
Size=100
x=np.linspace(1,Size,Size)
data = np.random.randint(1, Size, Size)
print(data)
plt.plot(x,data,c='k',lw=2)
from scipy.signal import savgol_filter
y = savgol_filter(data,5,3,mode='nearest')
plt.plot(x, y,'b',lw=2,label='savgol')
def plot_trendline(x,y,n,style):
parameter=np.polyfit(x,y,n)
f=np.poly1d(parameter)
pl.plot(x,f(x),style,lw=2)
plt.text(0.25,-0.4,'y=%.4fx'%parameter[0]+'+ %.4f'%parameter[1],fontsize=12)
print(parameter)
print(f)
print('r^2为',round(np.corrcoef(y,f(x))[0,1]**2,2))
plot_trendline(x,data,1,"r-")
plt.savefig('F:/Rpython/lp36/plot82.png',dpi=800,bbox_inches='tight',pad_inches=0)
plt.show()
print('Finished.')

6 Python双Y轴绘制
"""
该源代码作者,CSDN:EWBA_GIS_RS_ER.
"""
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
from matplotlib.pyplot import MultipleLocator
month = np.arange(1,13)
precipitation = [10,15,30,40,50,80,100,120,55,45,30,10]
temperature = [-15,-10,5,15,20,27,35,30,26,15,5,-10]
fig = plt.figure(figsize=(10,6),dpi=600)
ax_pre = fig.add_subplot(111)
pre_bar = ax_pre.bar(month,precipitation,color='blue',label='降水')
fontdict1 = {'size':11,'color':'k','weight':'normal','family':'SimHei'}
ax_pre.set_ylabel('降水(mm)',fontdict=fontdict1,labelpad=0)
ax_pre.set_xlabel('月')
ax_tem = ax_pre.twinx()
tem_line = ax_tem.plot(month,temperature,marker='o',markersize=3,color='r',linewidth=1,label='温度')
ax_tem.set_ylabel('温度(℃)',fontdict=fontdict1,labelpad=0)
fig.legend(loc=0,bbox_to_anchor=(1,1), bbox_transform=ax_pre.transAxes)
plt.savefig('F:/Rpython/lp36/plot76.png',dpi=800,bbox_inches='tight',pad_inches=0)
plt.show()

7 Python三Y轴绘制
"""
该源代码作者,博客园:dajunma21。
"""
from mpl_toolkits.axisartist.parasite_axes import HostAxes, ParasiteAxes
import matplotlib.pyplot as plt
fig = plt.figure(1)
host = HostAxes(fig, [0.15, 0.1, 0.65, 0.8])
par1 = ParasiteAxes(host, sharex=host)
par2 = ParasiteAxes(host, sharex=host)
host.parasites.append(par1)
host.parasites.append(par2)
host.set_ylabel('Denstity')
host.set_xlabel('Distance')
host.axis['right'].set_visible(False)
par1.axis['right'].set_visible(True)
par1.set_ylabel('Temperature')
par1.axis['right'].major_ticklabels.set_visible(True)
par1.axis['right'].label.set_visible(True)
par2.set_ylabel('Velocity')
offset = (60, 0)
new_axisline = par2._grid_helper.new_fixed_axis
par2.axis['right2'] = new_axisline(loc='right', axes=par2, offset=offset)
fig.add_axes(host)
host.set_xlim(0,2)
host.set_ylim(0,2)
host.set_xlabel('Distance')
host.set_ylabel('Density')
host.set_ylabel('Temperature')
p1, = host.plot([0, 1, 2], [0, 1, 2], label="Density")
p2, = par1.plot([0, 1, 2], [0, 3, 2], label="Temperature")
p3, = par2.plot([0, 1, 2], [50, 30, 15], label="Velocity")
par1.set_ylim(0,4)
par2.set_ylim(1,60)
host.legend()
host.axis['left'].label.set_color(p1.get_color())
par1.axis['right'].label.set_color(p2.get_color())
par2.axis['right2'].label.set_color(p3.get_color())
par2.axis['right2'].major_ticklabels.set_color(p3.get_color())
par2.axis['right2'].set_axisline_style('-|>',size=1.5)
par2.axis['right2'].line.set_color(p3.get_color())
plt.savefig('F:/Rpython/lp36/plot82.91.png',dpi=800,bbox_inches='tight',pad_inches=0)
plt.show()
print('Finished.')
print('Done!')

8 Python多Y轴绘制
"""
该源代码作者,博客园:dajunma21。
"""
from mpl_toolkits.axisartist.parasite_axes import HostAxes, ParasiteAxes
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(1)
ax_cof = HostAxes(fig, [0, 0, 0.9, 0.9])
ax_temp = ParasiteAxes(ax_cof, sharex=ax_cof)
ax_load = ParasiteAxes(ax_cof, sharex=ax_cof)
ax_cp = ParasiteAxes(ax_cof, sharex=ax_cof)
ax_wear = ParasiteAxes(ax_cof, sharex=ax_cof)
ax_cof.parasites.append(ax_temp)
ax_cof.parasites.append(ax_load)
ax_cof.parasites.append(ax_cp)
ax_cof.parasites.append(ax_wear)
ax_cof.axis['right'].set_visible(False)
ax_cof.axis['top'].set_visible(False)
ax_temp.axis['right'].set_visible(True)
ax_temp.axis['right'].major_ticklabels.set_visible(True)
ax_temp.axis['right'].label.set_visible(True)
ax_cof.set_ylabel('cof')
ax_cof.set_xlabel('Distance (m)')
ax_temp.set_ylabel('Temperature')
ax_load.set_ylabel('load')
ax_cp.set_ylabel('CP')
ax_wear.set_ylabel('Wear'
)
load_axisline = ax_load.get_grid_helper().new_fixed_axis
cp_axisline = ax_cp.get_grid_helper().new_fixed_axis
wear_axisline = ax_wear.get_grid_helper().new_fixed_axis
ax_load.axis['right2'] = load_axisline(loc='right', axes=ax_load, offset=(40,0))
ax_cp.axis['right3'] = cp_axisline(loc='right', axes=ax_cp, offset=(80,0))
ax_wear.axis['right4'] = wear_axisline(loc='right', axes=ax_wear, offset=(120,0))
fig.add_axes(ax_cof)
''' #set limit of x, y
ax_cof.set_xlim(0,2)
ax_cof.set_ylim(0,3)
'''
curve_cof, = ax_cof.plot([0, 1, 2], [0, 1, 2], label="CoF", color='black')
curve_temp, = ax_temp.plot([0, 1, 2], [0, 3, 2], label="Temp", color='red')
curve_load, = ax_load.plot([0, 1, 2], [1, 2, 3], label="Load", color='green')
curve_cp, = ax_cp.plot([0, 1, 2], [0, 40, 25], label="CP", color='pink')
curve_wear, = ax_wear.plot([0, 1, 2], [25, 18, 9], label="Wear", color='blue')
ax_temp.set_ylim(0,4)
ax_load.set_ylim(0,4)
ax_cp.set_ylim(0,50)
ax_wear.set_ylim(0,30)
ax_cof.legend()
ax_temp.axis['right'].label.set_color('red')
ax_load.axis['right2'].label.set_color('green')
ax_cp.axis['right3'].label.set_color('pink')
ax_wear.axis['right4'].label.set_color('blue')
ax_temp.axis['right'].major_ticks.set_color('red')
ax_load.axis['right2'].major_ticks.set_color('green')
ax_cp.axis['right3'].major_ticks.set_color('pink')
ax_wear.axis['right4'].major_ticks.set_color('blue')
ax_temp.axis['right'].major_ticklabels.set_color('red')
ax_load.axis['right2'].major_ticklabels.set_color('green')
ax_cp.axis['right3'].major_ticklabels.set_color('pink')
ax_wear.axis['right4'].major_ticklabels.set_color('blue')
ax_temp.axis['right'].line.set_color('red')
ax_load.axis['right2'].line.set_color('green')
ax_cp.axis['right3'].line.set_color('pink')
ax_wear.axis['right4'].line.set_color('blue')
plt.savefig('F:/Rpython/lp36/plot82.9.png',dpi=800,bbox_inches='tight',pad_inches=0)
plt.show()
print('Finished.')
print('Done!')

