python中用turtle画一个圆形,python绘图turtle画圆

本篇文章给大家谈谈用pythonturtle画简单的图案,以及python中用turtle画一个圆形,希望对各位有所帮助,不要忘了收藏本站喔。

The first homework of the Map Visualization

Python系列之—matplotlib的使用

使用matplotlib函数绘制饼图、折线图、柱状图、等值线图和实现3D绘图

01饼图

美国职业篮球联赛(NBA)冠军球队统计(数据截止2019-2020赛季):

球队冠军次数
波士顿凯尔特人17
洛杉矶湖人16
芝加哥公牛队6
金州勇士6
马刺队5
其它队14
代码:
import numpy as np#引入numpy库
import matplotlib.pyplot as plt#引入matplotlib库的pyplot函数

#添加标题
plt.title("NBA总冠军球队统计",fontproperties='KaiTi',fontsize=30,color="red")#添加图名

#设置正圆显示
plt.axis('equal')

#构造数据
plt.rcParams['font.sans-serif']='SimHei'#中文显示乱码处理,SimHei是黑体
plt.rcParams['axes.unicode_minus']=False #用来正常显示正负号
labels="波士顿凯尔特人",'洛杉矶湖人','芝加哥公牛','金州勇士','马刺','其它'#设置显示标签
size=[17,16,6,6,5,14]#设置每个标签对应的值

#设置突出显示的标签
explode=[0,0.15,0,0.1,0,0]

#设置标签颜色,浅黄,橙,绿,红,紫,青
colors=['wheat','orange','green','red','violet','teal']

#开始绘制
plt.pie(size,#加载绘图数据
        explode=explode,#突出显示的项       
        labels=labels,#各球队标签
        colors=colors,#颜色属性
        radius=1.2,#设置饼图半径
        counterclock=False,#设置为顺时针方向开始绘图
        labeldistance=1.1,#设置标签位置
        autopct='%.2f%%',#设置百分比格式,这里保存两位小数
        textprops={'fontsize':12,'color':'black'},#设置文本属性,字体大小为12,颜色为黑
        wedgeprops={'linewidth':0.7,'edgecolor':'black'},#设置边框,宽度为0.7,颜色为黑
        shadow=True,#添加阴影
        startangle=90#设置开始绘图的角度
       )
plt.show()
#问题:某一项文本特殊显示
运行结果:

在这里插入图片描述

02折线图

乔丹、科比、詹姆斯生涯前10年得分统计:

年份乔丹科比詹姆斯
128.27.620.9
222.715.427.2
337.119.931.4
435.022.527.3
532.528.530.0
633.625.228.4
731.530.029.7
830.124.026.7
932.627.627.1
1026.935.426.8
代码:
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns#导入seaborn库,用于删除上和右坐标轴
from matplotlib.pyplot import MultipleLocator#从pyplot导入MultipleLocator类,用于设置刻度间隔

#设置画布大小
plt.figure(figsize=(15,8))


#设置绘图界面颜色
plt.subplot(facecolor='azure')

#设置标题
plt.title("乔丹|科比|詹姆斯生涯前10年常规赛场均得分对比折线图",fontproperties="SimHei",fontsize=25,color="black")


#处理中文显示
plt.rcParams['font.sans-serif']='SimHei'#中文显示乱码处理,SimHei是黑体
plt.rcParams['axes.unicode_minus']=False #解决负号显示为方块的问题

#设定X,Y轴数值范围和字体大小和标签
plt.xlim(0,11)
plt.ylim(0,40)
plt.tick_params(axis='both',labelsize=17)#设置标签字体大小
plt.xlabel('年份/第x年',fontproperties='SimHei',fontsize=20)
plt.ylabel('得分/分',fontproperties='SimHei',fontsize=20) 

#准备数据
x=range(0,11,1)#x的取值为0-11,间隔为1
y1=[0,28.2,22.7,37.1,35.0,32.5,33.6,31.5,30.1,32.6,26.9]#乔丹得分
y2=[0,7.6,15.4,19.9,22.5,28.5,25.2,30.0,24.0,27.6,35.4]#科比得分
y3=[0,20.9,27.2,31.4,27.3,30.0,28.4,29.7,26.7,27.1,26.8]#詹姆斯得分

#设置两坐标轴间隔
axy=plt.gca()#获取两条坐标轴的实例
xitl=MultipleLocator(1)#设置x轴间隔为1
yitl=MultipleLocator(3)#设置y轴间隔为3
axy.xaxis.set_major_locator(xitl)
axy.yaxis.set_major_locator(yitl)

#开始绘制折线
plt.plot(x,y1,color="orange",linestyle="--",marker="o",linewidth=2,label='乔丹')#乔丹数据线
plt.plot(x,y2,color="red",linestyle="-.",marker="o",linewidth=2,label='科比')#科比数据线
plt.plot(x,y3,color="green",linestyle="-",marker="o",linewidth=2,label='詹姆斯')#詹姆斯数据线

#设置图例显示位置,大小与背景颜色
plt.legend(loc='lower right',fontsize=15,facecolor='lightyellow',shadow=True,borderpad=0.5)

#在具体标签点上显示得分值,annotate函数用于在图形上给数据添加文本注解
for i in range(0,len(x)):
    plt.annotate(y1[i],xy=(x[i],y1[i]),xytext=(x[i]-0.1,y1[i]+1),color='orange',ha='center',fontsize=15)#y[i]是散点标注内容,xy是散点坐标,xytext散点内容坐标
    plt.annotate(y2[i],xy=(x[i],y2[i]),xytext=(x[i]-0.1,y2[i]-1.5),color='red',fontsize=15)
    plt.annotate(y3[i],xy=(x[i],y3[i]),xytext=(x[i],y3[i]+0.8),color='green',ha='center',fontsize=15)
    
#设置网格线
plt.grid(True,linestyle="--",color='grey',linewidth='0.7',axis='both')#添加网格,虚线,灰色,线宽0.5,横纵轴都画

sns.despine()
plt.savefig(fname='line_chart.jpg')#保存图片
plt.show()
运行结果:

在这里插入图片描述

03柱状图
代码:
plt.figure(figsize=(15,8))#设置画布
plt.xlabel('年份/第X年',fontsize=15)#X轴标签
plt.ylabel('得分/分',fontsize=15)#y轴标签
plt.tick_params(axis='both',labelsize=18)#设置标签属性
x=np.arange(len(x))
plt.xlim(0,11)
plt.xticks(x)
#设置标题
plt.title("乔丹|科比|詹姆斯生涯前10年常规赛场均得分对比柱状图",fontproperties="SimHei",fontsize=25,color="black")
#并列显示
bar_width = 0.25
for i in range(0,len(x)):
    plt.bar(x-bar_width,y1, bar_width, align="center", color="pink", alpha=1)
    plt.bar(x,y2, bar_width, align="center", color="teal", alpha=0.5)
    plt.bar(x+bar_width,y3, bar_width, align="center", color="gold",  alpha=0.5)
#显示每个标签值
for x,y in enumerate(y1[1:]):
    plt.text(x+0.75,y+0.25,'%s' %y,ha='center')
for x,y in enumerate(y2[1:]):
    plt.text(x+1,y+0.25,'%s' %y,ha='center')
for x,y in enumerate(y3[1:]):
    plt.text(x+1.25,y+0.25,'%s' %y,ha='center')
#图例
plt.legend({'乔丹',"科比","詹姆斯"}, fontsize=15 )
#设置网格线
plt.grid(True,linestyle="--",color='grey',linewidth='0.7',axis='y')
#去除上边和右边轴
sns.despine()
plt.savefig(fname='Bar_graph.jpg')
plt.show()


运行结果:

在这里插入图片描述

04等值线图
代码:
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image

plt.figure(figsize=(13,8))
#矢量化图像,得到灰度值
a=np.array(Image.open("OIP.jpg").convert('L'))
y=np.arange(0,a.shape[0])
x=np.arange(0,a.shape[1])

#生成风格点坐标矩阵
X,Y=np.meshgrid(x,y)

#contour绘制图廓线,10表示轮廓线的数量
z=plt.contour(X,Y,a,8,colors='black',linewidths=0.5)
plt.contourf(X,Y,a,8,alpha=0.8,cmap='jet')#cmap=plt.cm.cool
plt.clabel(z,inline=True,fontsize=12)
plt.savefig(fname='isogram.jpg')
plt.show()
运行结果:

在这里插入图片描述

053D绘图
代码:
from mpl_toolkits.mplot3d import Axes3D

figure=plt.figure()
#新建一个3D绘图
ax=Axes3D(figure)
#矢量化图像,得到灰度值
n=256
y=np.linspace(-3,3,n)
x=np.linspace(-3,3,n)
a=14
b=22
c=9
X,Y=np.meshgrid(x,y)
Z=a*X*np.exp(-(X**2+Y**2))
ax.plot_surface(X,Y,Z,rstride=1, cstride=1, cmap="rainbow")
plt.savefig(fname='3D_pic.jpg')
plt.show()
运行结果:

在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值