完整代码
https://gitee.com/ihan1001
https://github.com/ihan1001/python-drawing
import matplotlib.pyplot as plt
import numpy as np
#创建空白画笔
fig = plt.figure(figsize=(4,3),facecolor='pink')
#添加子画布
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
#画图 画布.plot
ax1.plot([1,2,3,4,5],[8,5,7,3,6])
ax2.plot([1,2,3,4,5],[5,4,3,2,1])
x = np.arange(10)
y = np.sin(x)
ax3.plot(x,y)
fig,axes = plt.subplots(2,2,sharex = True,sharey = True)
for i in range(2):
for j in range(2):
axes[i,j].hist(np.random.randn(500),bins=50,color='blue',alpha=0.5)
plt.subplots_adjust(wspace=0,hspace=0)
plt
x = np.linspace(0,1,50)
y1 = x**2
y2 = x**3
#创建空白画布
fig = plt.figure(figsize=(8,7),facecolor='pink')
#添加子画布1
ax1 = fig.add_subplot(1,2,1)
#设置标签
plt.xlabel('X')
plt.ylabel('Y')
#设置坐标轴长度
plt.xlim((0,1))
plt.ylim((0,1))
#限制坐标轴上显示的点
plt.xticks(np.linspace(0,1,6)) #第三个参数代表有几个点
plt.yticks(np.linspace(0,1,6))
plt.plot(x,y1,label='line') #绘图,直线
plt.plot(x,y2,label='parabola',color='red',linewidth=1.0,linestyle='--') #抛物线
plt.legend(labels=['y^2','y^3'],loc='best') #添加图例 在最上层最后添加
plt.title('题目1')
ax2 = fig.add_subplot(1,2,2)
x = np.linspace(-1,np.pi*2,50)
y1 = np.sin(x)
y2 = np.cos(x)
#设置标签
plt.xlabel('X')
plt.ylabel('Y')
#设置坐标轴长度
plt.xlim((0,np.pi*2))
plt.ylim((-1,1))
#限制坐标轴上显示的点
plt.xticks(np.linspace(0,np.pi*2,5)) #第三个参数代表有几个点
plt.yticks(np.linspace(-1,1,5))
plt.rcParams['axes.unicode_minus'] = False #用来正常显示符号
plt.plot(x,y1,label='line') #绘图,直线
plt.plot(x,y2,label='parabola',color='red',linewidth=1.0,linestyle='--') #抛物线
plt.legend(labels=['sinx','cosx'],loc='best') #添加图例 在最上层最后添加
plt.title('题目2')
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文
x=np.linspace(0,10,500)
y=np.sin(3*x)
fig,ax = plt.subplots()
plt.plot(x,y)
#plt.fill_between(x,0,y,facecolor='green',alpha=0.3)
plt.fill_between(x[100:300],0,0.4,facecolor='green',alpha=0.3)
x=np.linspace(0,10,500)
y1=np.sin(3*x)
y2=y1+0.5
plt.plot(x,y1,'b')
plt.plot(x,y2,'r')
plt.fill_between(x,y1,y2,facecolor='green',alpha=0.3)
plt.xlim([1,8])
plt.ylim([1,5])
plt.text(2,2,r'$\alpha \beta \pi \lambda \omega $',size=15,color='b')
plt.text(5,4,r'$\sqrt[4]{x} = \sqrt{y} $',size=18)
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文
plt.rcParams['axes.unicode_minus'] = False #用来正常显示符号
#设置函数
x=np.arange(-10,11,1)
y=x*x
plt.plot(x,y)
#设置标题
plt.title('这是一个标题示例')
#无指向型注释 在坐标(-3.5,80)上,输出‘funciton y=x*x’
plt.text(-3.5,80,'funciton y=x*x',size=18)
#设置注释边框
bbox=dict(boxstyle='round',fc='white')
#设置指向型注释
plt.annotate('最小点',xy=(0,0),xytext=(-1.5,30),size=16,arrowprops=dict(facecolor='black',edgecolor='red',headwidth=7,width=2),bbox=bbox)
#显示图像
plt.show()
import numpy as np import matplotlib.pyplot as plt plt.rcParams ["font.sans-serif"]=["SimHei"] #设置字体 plt.rcParams [ "axes.unicode_minus"]=False#该语句解决图像中的“”负号的乱码问题 x=np.arange(9)+1 y=np.cos(x)+2 #z=np.cos(x) plt.plot(x,y,marker='o',linewidth=1,linestyle='--',color='orange',ms=10,mec='g') #plt.plot(x,z,marker='s',mfc='red',ms=10,mec='b') plt.title('小龙虾全年价格图') plt.xlabel('月份',fontsize=15) plt.ylabel('价格',fontsize=20) plt.legend(['小龙虾价格'],loc='upper right') plt.grid(True) plt.show()
#scatter绘图示例
x=np.arange(1,10)
y=x
z=np.cos(x)+5
plt.title('Scatter Plot')
#设置X轴、Y轴标签
plt.xlabel('X')
plt.ylabel('Y')
#画散点图
plt.scatter(x,y,s=100,c='red',marker= '*')
plt.scatter(x,z,s=100,c='blue',marker = 'v')
#设置图例
plt.legend(['y','z'],fontsize=18)
#显示图像
plt.show()
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams ["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams [ "axes.unicode_minus"]=False#该语句解决图像中的“”负号的乱码问题
xiaoming_score = [80,75,65,58,75,80,90]
subjects = ['语文','英语','数学','物理','化学','生物','体育']
plt.bar(x = np.arange(7),
height = xiaoming_score,
width = 0.35,
label ='小明',
edgecolor = 'k',
color = 'r',
tick_label = subjects,
linewidth=3)
plt.legend()
plt.show()
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams ["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams [ "axes.unicode_minus"]=False#该语句解决图像中的“”负号的乱码问题
xiaoming_score = [80,75,65,58,75,80,90]
subjects = ['语文','英语','数学','物理','化学','生物','体育']
plt.barh(y = np.arange(7),
width = xiaoming_score,
height = 0.35,
label ='小明',
edgecolor = 'k',
color = 'r',
tick_label = subjects,
linewidth=3)
plt.legend()
plt.show()
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams ["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams [ "axes.unicode_minus"]=False#该语句解决图像中的“”负号的乱码问题
x = np.arange(4)
A= [52,55,63,53]
B= [44,66,55,41]
bar_width = 0.3
plt.bar(x,A,bar_width)
plt.bar(x,B,bar_width,bottom=A)
plt.title('叠加柱状图')
plt.show()
#bar绘图示例3
x = np.arange(4)
x1 = np.arange(len(x)) # x轴刻度标签位置
A= [52, 55, 63, 53]
B= [44, 66, 55, 41]
B= [44, 66, 55, 41]
bar_width = 0.3
#计算每个柱子在x轴上的位置,保证x轴刻度标签居中
#x1-bar_width/2, x1 +bar width/2即每组数据在x轴上的位置
plt.bar(x1-bar_width/2, A, bar_width)
plt.bar(x1+bar_width/2, B, bar_width)
plt.title('并列柱状图')
plt.show()
x = np.linspace(0,1,50)
#创建空白画布
fig = plt.figure(figsize=(8,7))
#添加子画布1
ax1 = fig.add_subplot(2,2,1)
plt.rcParams ["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams [ "axes.unicode_minus"]=False#该语句解决图像中的“”负号的乱码问题
xiaoming_score = [80,75,65,58,75,80]
subjects = ['语文','英语','数学','物理','化学','生物']
plt.bar(x = np.arange(6),
height = xiaoming_score,
width = 0.35,
edgecolor = 'k',
color = 'r',
tick_label = subjects,
linewidth=3)
plt.legend()
plt.title('柱状图1')
ax2 = fig.add_subplot(2,2,2)
plt.rcParams ["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams [ "axes.unicode_minus"]=False#该语句解决图像中的“”负号的乱码问题
xiaoming_score = [80,75,65,58,75,80]
subjects = ['语文','英语','数学','物理','化学','生物']
plt.barh(y = np.arange(6),
width = xiaoming_score,
height = 0.35,
label = "",
edgecolor = 'k',
color = 'b',
tick_label = subjects,
linewidth=3)
plt.legend()
plt.title('柱状图2')
#添加子画布3
ax3 = fig.add_subplot(2,2,3)
plt.rcParams ["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams [ "axes.unicode_minus"]=False#该语句解决图像中的“”负号的乱码问题
x = np.arange(6)
A= [52, 55, 63, 53,50,52]
B= [44, 66, 55, 41,23,30]
bar_width = 0.3
plt.bar(x,A, bar_width,
color = 'g',
tick_label = subjects)
plt.bar(x,B, bar_width,
color = 'b',
bottom=A, tick_label = subjects)
plt.title('柱状图3')
#添加子画布4
ax3 = fig.add_subplot(2,2,4)
#bar绘图示例3
x = np.arange(6)
x1 = np.arange(len(x)) # x轴刻度标签位置
A= [52, 55, 63, 53,50,52]
B= [44, 66, 55, 41,23,30]
bar_width = 0.3
#计算每个柱子在x轴上的位置,保证x轴刻度标签居中
#x1-bar_width/2, x1 +bar width/2即每组数据在x轴上的位置
plt.bar(x1-bar_width/2, A, bar_width, tick_label = subjects)
plt.bar(x1+bar_width/2, B, bar_width, tick_label = subjects)
plt.title('柱状图4')
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams ["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams [ "axes.unicode_minus"]=False#该语句解决图像中的“”负号的乱码问题
labels=['春天','夏天','秋天','冬天']
x=[15,30,45,10]
explode=(0.05,0.05,0.05,0.05) #控制分离距离,默认不分离
plt.pie(x,labels=labels,explode= explode,startangle=60,autopct='%1.1f%%')
plt.title('季节雨天比例')
plt.show()
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams ["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams [ "axes.unicode_minus"]=False#该语句解决图像中的“”负号的乱码问题
np.random.seed(100)
data = np.random.normal(size=(1000, 4), loc=0, scale=1)
ax = plt.subplot()
ax.boxplot(data)
ax.set_xlim([0, 5])
ax.set_xlabel("xlabel") #设置x轴的标签
ax.set_xticklabels(['A', 'B', 'C', 'D'], rotation=30, fontsize=10)
ax.set_title('箱线图')
ax.legend(labels=['A', 'B', 'C' 'D'], loc='best',)
ax.text(x=0.2, y=3.5, s="test", fontsize=12)
x = [15.3, 15.5, 20.3, 23.6, 25.2] labels = ["Java", "Python", "SQL", "HTML/CSS", "JavaScript"] explode = (0.0, 0.0, 0.1, 0.0, 0.0) colors = ['Purple', 'r', 'g', 'orange','cadetblue'] plt.pie(x, labels=labels, colors =colors,explode=explode, startangle=90, autopct='%1.1f%%') plt.title("top5 编程语言占比") plt.show()