当前位置: 首页 > news >正文

python画图(生成图形)、matplotlib、cartopy

文章目录

      • 抛物线示例
      • 地球仪示例
        • 如果要以太平洋为中心怎么弄?
      • 马路示例
      • 七色花示例

抛物线示例

创建文件parabola_demo.py,代码:

importmatplotlib.pyplotaspltimportnumpyasnp# 1. 准备数据 (相当于准备画纸和刻度)# 生成从 -10 到 10 的 400 个 x 坐标点,数字越多线条越平滑x=np.linspace(-10,10,400)# 2. 定义函数公式 (核心部分!)# 这里定义的是 y = x^2,你可以随意修改公式,比如 y = 2*x**2 + 3y=x**2# 3. 开始绘图plt.figure(figsize=(8,6))# 设置画布大小plt.plot(x,y,label='y = x^2',color='blue')# 画线,设置标签和颜色plt.title('Parabola: y = x^2')# 标题plt.xlabel('x axis')# X轴标签plt.ylabel('y axis')# Y轴标签plt.grid(True)# 显示网格,方便看坐标plt.legend()# 显示图例plt.axhline(0,color='black',linewidth=1)# 画一条黑色的X轴plt.axvline(0,color='black',linewidth=1)# 画一条黑色的Y轴plt.show()# 展示图像

结果如图:

地球仪示例

这里用的就不是matplotlib了,用的是cartopy

pip install cartopy

代码:

importmatplotlib.pyplotaspltimportcartopy.crsasccrsimportcartopy.featureascfeature# 【关键修改1】导入 feature 模块# 1. 创建画布和投影fig=plt.figure(figsize=(8,8))ax=fig.add_subplot(1,1,1,projection=ccrs.Orthographic(central_longitude=100,central_latitude=30))# 2. 添加地理特征ax.coastlines()# 绘制海岸线# 【关键修改2】使用 cfeature.LAND 而不是 ccrs.LANDax.add_feature(cfeature.LAND)ax.gridlines()# 画上经纬度网格线# 3. 设置标题并展示plt.title("my globe",fontsize=16,pad=20)plt.show()

结果如图:

如果要以太平洋为中心怎么弄?
修改前: ax=fig.add_subplot(1,1,1,projection=ccrs.Orthographic(central_longitude=100,central_latitude=30))修改后: ax=fig.add_subplot(1,1,1,projection=ccrs.Orthographic(central_longitude=180,central_latitude=30))

结果如图:

马路示例

用的是自带turtle包。

创建raod.py,代码:

importturtle# 1. 设置屏幕和画笔screen=turtle.Screen()screen.title("Python 画的柏油马路")screen.bgcolor("skyblue")# 背景是天空蓝screen.setup(800,600)# 窗口大小t=turtle.Turtle()t.width(5)# 笔触宽度t.speed(0)# 最快速度# --- 开始画图 ---# 2. 画两边的草地 (简单的两个大矩形)defdraw_grass(x,y):t.penup()t.goto(x,y)t.pendown()t.color("forestgreen")# 深绿色t.begin_fill()for_inrange(4):t.forward(800if_%2==0else300)# 长宽不同t.right(90)t.end_fill()draw_grass(-400,150)# 上面草坪draw_grass(-400,-150)# 下面草坪# 3. 画马路主体 (黑色沥青)t.penup()t.goto(-400,150)t.pendown()t.color("gray20")# 深灰色t.begin_fill()for_inrange(2):t.forward(800)# 长度t.right(90)t.forward(300)# 宽度t.right(90)t.end_fill()# 4. 画路边的白线 (实线)defdraw_line(y_pos):t.penup()t.goto(-400,y_pos)t.pendown()t.color("white")t.width(3)t.forward(800)draw_line(150)# 上边缘draw_line(-150)# 下边缘# 5. 画中间的虚线 (核心算法:抬笔-移动-落笔)t.width(5)t.color("yellow")t.penup()t.goto(-400,0)# 中间位置for_inrange(40):# 循环画40段线t.pendown()t.forward(20)# 画一段线 (长度20)t.penup()# 抬笔t.forward(20)# 空一段距离 (长度20)# 隐藏画笔图标t.hideturtle()# 点击窗口关闭screen.exitonclick()

结果如图:

七色花示例

注:效果其实是动态图,这里的截图展示不出动态的效果。

创建seven_color_flower.py,代码:

importturtleast t.bgcolor("black")# 背景设为黑色t.speed(0)# 最快速度t.width(2)# 循环画花瓣foriinrange(36):# 转36圈t.pencolor("red"ifi%2==0else"yellow")# 红黄交替颜色t.circle(50)# 画一个半径50的圆(花瓣)t.right(10)# 向右转10度# 稍微改变一下大小,制造层次感t.circle(30)t.right(10)t.done()

结果如图:

http://www.jsqmd.com/news/694287/

相关文章:

  • 三指数平滑与网格搜索在时间序列预测中的实践
  • VSCode国产化调试性能骤降87%?实测对比12款国产操作系统内核参数调优组合,第9组配置让单步执行提速4.2倍
  • MathTranslate终极指南:3步轻松翻译含复杂公式的学术论文
  • 小白程序员必看!开源网络入侵检测系统全解析(Suricata、Snort、Zeek/Bro、Security Onion)
  • 告别按键抖动!用三行C语言代码实现单片机按键扫描(附STM32移植教程)
  • 英雄联盟智能助手:5分钟掌握League Akari终极自动化工具
  • SVN:“both sides of the move must be committed together”
  • VSCode中如何使用Claude Code
  • 特征选择子空间集成方法在高维数据中的应用与优化
  • eureka管理平台(开源项目)-eurekaadmin
  • 从‘装不上’到‘跑得飞起’:我的TensorFlow-GPU避坑实录与终极验证指南
  • 别再只用XGBoost了!用Scikit-learn的VotingClassifier给你的分类模型上个‘保险’
  • 3步构建高效隐私保护的本地语音识别系统:TMSpeech完整指南
  • 【超全方法】2026年Hermes Agent/OpenClaw阿里云1分钟快速搭建流程
  • 硬件版 AI 语音输入法:SpeakON 发布 MagSafe 设备,格式化转录文本输出第三方 App;安防厂商萤石推出儿童 AI 相机 EZVIZ Pika丨日报
  • 别再死记硬背了!用这4种BJT+MOSFET组合,轻松搞定电源开关与上电时序设计
  • 保姆级教程:用Qualcomm-P-T工具备份高通手机全字库,再也不怕刷机变砖了
  • 数据基座是什么?数据基座核心价值该如何落地?
  • 手把手教你用 LIO-SAM 在 ROS Noetic 里跑通自己的第一个激光SLAM demo
  • League Akari:5分钟打造你的终极英雄联盟智能助手
  • FanControl完全指南:3步掌握Windows风扇控制,打造静音高效散热系统
  • 保姆级教程:手把手逆向PDD滑块验证码(附完整JS解密代码)
  • 暗黑2重制 Mod开发工具汇总
  • 2026 珠海广州佛山江门中山防撞车租赁实力榜:战狼、家盛、老兵领跑,安全高效选这三家 - 广州搬家老班长
  • 高效解决扫描PDF难题:Umi-OCR双层PDF转换完整指南
  • 从NVM存储选型到代码实现:深入理解ISO14229 0x2E服务的底层逻辑
  • E-Hentai批量下载终极指南:免费快速保存完整画廊
  • Phi-3.5-mini-instruct代码实例:用curl命令直连vLLM API获取模型响应
  • 告别局域网!用MCSM面板+cpolar,5分钟搞定《我的世界》服务器远程管理(保姆级教程)
  • 别再只用单次转换了!深入玩转STM32F103的ADC扫描与间断模式,实现多通道自动巡检