怎样免费设计网站建设,联想电脑网站建设策划书,利用代码如何做网站,商丘市建设本文只介绍最简单基本的画图方法
预设
要想画出来的图有些逼格#xff0c;首先应该进行如下设置
plt.rcParams[font.sans-serif][SimHei] #画图时显示中文字体
plt.rcParams[axes.unicode_minus] False #防止因修改成中文字符#xff0c;导致某些 unicode 字符不能…本文只介绍最简单基本的画图方法
预设
要想画出来的图有些逼格首先应该进行如下设置
plt.rcParams[font.sans-serif][SimHei] #画图时显示中文字体
plt.rcParams[axes.unicode_minus] False #防止因修改成中文字符导致某些 unicode 字符不能显示
plt.subplots_adjust(leftNone, bottomNone, rightNone, topNone,wspace0.3) #设置制子图之间的左右间距left 等是设置画图区域与画布之间的间font1 {family : SimHei,
weight : normal,
size : 15,
} #设置图例legend文字的格式的绘制多幅图
基本格式
fig plt.figure(figsize())
ax1 plt.subplot(m,n,1) #m 为行、n为列、1 为图序
plt.plot(xxxxx)ax2 plt.subplot(m,n,2)
plt.plot(xxxx)......
示例如下
python
import matplotlib.pyplot as plt
import numpy as np
x np.linspace(0,2*np.pi,100)
y1 np.sin(x)
y2 np.cos(x)
y3 x1fig plt.figure(figsize(12,4)) #宽度、高度
ax1 plt.subplot(1,3,1)
plt.plot(x,y1,linewidth1.5,colorc,labelr$y_1$,markero,markersize4)
plt.xlabel(x,fontsize24)
plt.ylabel(r$y_1$,fontsize24)
plt.ylim([-1,1])
plt.xlim([0,2*np.pi])
plt.legend(propfont1,locbest)
plt.grid()ax2 plt.subplot(1,3,2)
plt.plot(x,y2,linewidth3,colorr,labelr$y_2$,linestyle-.)
plt.xlabel(x,fontsize24)
plt.ylabel(r$y_2$,fontsize24)
plt.ylim([-1,1])
plt.xlim([0,2*np.pi])
plt.legend(propfont1,locbest)
plt.grid()ax3 plt.subplot(1,3,3)
plt.plot(x,y3,linewidth1.5,colorb,labelr$y_3$,linestyle--)
plt.xlabel(x,fontsize24)
plt.ylabel(r$y_3$,fontsize24)
plt.legend(propfont1,locbest)
plt.grid()另外。plt.title 也可以设图片的标题子图的标题也行
画骨骼图
先看效果 这里要用 axe 来画图而不能直接用 plt代码如下
def sigmoid(x):return 1./(1.np.exp(-x))def relu(x):return np.where(x0,0,x)def tanh(x):return 2*sigmoid(2*x)-1font1 {family : Times New Roman,
weight : normal,
size : 14,
}def plot_tran_fun(): plt.rcParams[font.sans-serif][SimHei]plt.rcParams[axes.unicode_minus] Falsefig plt.figure(figsize(8,6))ax1 plt.subplot(2,2,1)x np.arange(-10, 10)y sigmoid(x)ax.spines[top].set_color(none)ax.spines[right].set_color(none)ax.xaxis.set_ticks_position(bottom)ax.spines[bottom].set_position((data,0))ax.set_xticks([-10,-5,0,5,10])ax.yaxis.set_ticks_position(left)ax.spines[left].set_position((data,0))ax.plot(x,y,labelSigmoid,color blue)plt.legend(propfont1,loclower right)
# plt.show()
#
# ax2 plt.subplot(2,2,2)x np.arange(-10, 10)y tanh(x)ax.spines[top].set_color(none)ax.spines[right].set_color(none)ax.xaxis.set_ticks_position(bottom)ax.spines[bottom].set_position((data,0))ax.set_xticks([-10,-5,0,5,10])ax.yaxis.set_ticks_position(left)ax.spines[left].set_position((data,0))ax.plot(x,y,labelTanh,color blue)plt.legend(propfont1)
# ax.show()
# ax fig.add_subplot(223)
# x np.arange(-10, 10)y relu(x)ax.spines[top].set_color(none)ax.spines[right].set_color(none)ax.xaxis.set_ticks_position(bottom)ax.spines[bottom].set_position((data,0))ax.set_xticks([-10,-5,0,5,10])ax.yaxis.set_ticks_position(left)ax.spines[left].set_position((data,0))ax.plot(x,y,labelReLU,color blue)plt.legend(propfont1)
# ax fig.add_subplot(224)
# x np.arange(-10, 10)y xax.spines[top].set_color(none)ax.spines[right].set_color(none)ax.xaxis.set_ticks_position(bottom)ax.spines[bottom].set_position((data,0))ax.set_xticks([-10,-5,0,5,10])ax.yaxis.set_ticks_position(left)ax.spines[left].set_position((data,0))ax.plot(x,y,labelLinear,color blue)plt.legend(propfont1)plot_tran_fun()其他画图
画出包围部分
一般用在画积分面积的时候代码如下
fig plt.figure(figsize(6,4))
plt.plot(x,y1,x,y2)
plt.fill_between(x,y1,y2,facecolork,alpha0.2)
plt.text(1.5,0,包围部分,fontsize20)
plt.title(画出包围部分,fontsize16)散点图
plt.scatter(x,y,sNone,cNone,markerNone,alphaNone)
其中 s 为每一个点的大小若传入的是一个列表或者 array则array匹配每一个点的大小 c 表示点的颜色若传入的是列表或者 array则匹配每一个点的颜色
from sklearn.datasets import make_gaussian_quantiles
X, y make_gaussian_quantiles(n_samples300,n_features2, n_classes2) #产生数据集
X0 X[y.ravel()0]
plt.scatter(X0[:, 0], X0[:, 1], markero)
X1 X[y.ravel()1]
plt.scatter(X1[:, 0], X1[:, 1], markerx) 柱状图
plt.bar(x,height,width,color) 其中 height 是柱状图的高度即 y
x np.arange(10)
y1 np.random.randn(10)
y2 np.random.randn(10)
fig plt.figure(figsize(6,4))
plt.bar(x,y1,width0.35,colorg)
plt.bar(x0.35,y2,width0.35,colorb)
plt.xlabel(x,fontsize16)
plt.ylabel(y,fontsize16)饼状图
plt.pie(x,labelsNone,explodeNone,colorsNone,autopctNone) 其中x 为待表示数据label 接受一个 array分别对应 x 的标签explode 接受 array表示饼状图离圆心的距离用半径的百分比表示colors 可以接受 array表示每一个饼的颜色autopct 是设置比例的表示方法如 %1.1f %%第二个 % 是为了转意
x [15,20,30,40]
explode [0.05]*len(x)
autopct %1.1f %%
labels [one,two,three,four]
fig plt.figure(figsize(6,4))
patches,l_text,p_text plt.pie(x,labelslabels,explodeexplode,autopctautopct)
#l_text,p_text 是为了设置饼状图的文本。l_text 是labels的文本p_text 是图内部的文本比例
for t in l_text:t.set_size(30)
for t in p_text:t.set_size(20)箱型图
plt.boxplot(df,sym,meanline) df为箱型图绘制的数据以列为单位进行绘制 sym为异常点的形状 meanline是否展示平均线
import pandas as pd
df pd.DataFrame(np.random.randn(5,4),columns[A,B,C,D])
fig plt.figure(figsize(6,4))
plt.boxplot(df,symo,meanlineTrue)若要设置 xticks则需要用到 ax如下
df pd.DataFrame(np.random.randn(5,4),columns[A,B,C,D])
fig plt.figure(figsize(6,4))
ax plt.subplot()ax.boxplot(df,symo)
ax.set_xticklabels([A,B,C,D])
频率直方图
import pandas as pd
x np.random.normal(0,1,size(100))
fig plt.figure(figsize(6,4))
bin_num 10
plt.hist(x,bin_num)