python画图【02】

2023-12-20 02:17:47

完整代码
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()
在这里插入图片描述

文章来源:https://blog.csdn.net/weixin_43491496/article/details/135094987
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。