matplotlib 画图 Tips

显示图形后自动关闭

使用 plt.show() 如果不手动关闭则程序会卡住;

实际中遇到过的问题:使用plt.show()后可以显示需要的图,如不使用则无法正确显示,但需要生产大量的图,不能手动关闭,可使用如下方法替代 plt.show()

plt.pause(0.01)  # 显示秒数
plt.close()

通过多线程的方式自动关闭fig的方法(未能成功)

matplotlib画图时调用多线程关闭图形显示_晓东邪的博客-优快云博客_matplotlib画完图后关闭

设置线条类型

使用 plt.plot() 画直线图,可使用 linestyle 设置线条类型;“:”表示点线(绿),“--”代表虚线(蓝)

自定义属性:color(颜色)marker(标记的形状)linestyle(线条形状)linewidth(线条宽度)marksize(标记的大小)label(标签,用于图例)

marker:S --> 实心正方形 P --> 实心五角星 O --> 实心圆 * --> 星形 D --> 菱形

linestyle:- 实线  虚线  破折线 -. 画点线

figure

创建一个全局绘图区域,facecolor=None 为无色背景
plt.figure(figsize=None, facecolor=None)  # figsize(a,b)中的参数a是指绘图区宽度,b则是高度
 

显示中文及字体设置:

标注图中值大小:

plt.text(a,b,b)  # 数据显示x轴对应位置、显示的位置高度(可以调整)、显示的数据值的大小
for a, b in zip(x, highest): # 使用for 循环依次次输出 zip()对应连接
    plt.text(a, b + 2, b, ha=‘center’, va=‘bottom’)

在这里插入图片描述

参考:

https://www.youkuaiyun.com/tags/NtjaYgwsMTY2OTUtYmxvZwO0O0OO0O0O.html

​​​​​​python条形图和线形图的绘制,并显示数据_键盘敲烂工资过万的博客-优快云博客_python条形图怎么显示数据

### Matplotlib 和 Seaborn 的绘图功能对比 #### 功能概述 MatplotlibPython 中最基础的数据可视化库,提供了一个灵活的 API 来创建各种静态、动态和交互式的图表。它的核心设计围绕着对象模型展开,允许用户通过控制图形的不同组件来定制化输出[^1]。 相比之下,Seaborn 则是一个更高层次的封装库,建立在 Matplotlib 之上。它简化了许多复杂的绘图过程,并内置了一些高级统计图表的支持,比如热力图、回归图等。Seaborn 提供了更为直观的接口以及预设的主题风格,使生成的图表更具吸引力[^2]。 #### 主要区别 1. **复杂度与易用性** - 使用 Matplotlib 需要手动设置许多参数才能达到理想的视觉效果,这可能对于初学者来说较为困难。 - 而 Seaborn 减少了这种负担,其默认配置已经优化得很好,能够快速生成美观的图像[^3]。 2. **主题支持** - Matplotlib 默认提供的配色方案相对单调,不过可以通过自定义 rcParams 或者加载外部样式表来进行调整。 - Seaborn 内置了几种精心设计的颜色模板,默认情况下就能满足大多数出版物级别的需求[^1]。 3. **统计特性集成** - 尽管 Matplotlib 可以完成几乎所有的基本绘图任务,但它缺乏直接处理统计数据的能力。 - Seaborn 不仅可以轻松绘制常见的分布曲线、箱形图等功能外,还特别擅长展示变量间的关系及其不确定性估计值[^2]。 4. **性能考量** - 对于大规模数据集或者高度定制化的场景下,由于额外的功能层叠,可能会导致 Seaborn 表现不如纯 Matplotlib 效率高。 ```python import matplotlib.pyplot as plt import seaborn as sns sns.set() # Apply the default theme of Seaborn which affects all subsequent plots made by both libraries. # Example plot using only Matplotlib plt.figure(figsize=(8,6)) plt.plot([0,1],[0,1], label="Line A") plt.title('Simple Line Plot') plt.xlabel('X-axis Label') plt.ylabel('Y-axis Label') plt.legend() plt.show() # Equivalent example enhanced with Seaborn's aesthetics and additional features. tips = sns.load_dataset("tips") sns.relplot(x="total_bill", y="tip", hue="smoker", style="time", data=tips); ``` 以上代码片段展示了如何分别利用这两个库制作类似的散点关系图,其中第二个版本借助 Seaborn 更加简洁明了地表达了更多信息维度的同时保持良好的可读性和美感。 #### 总结 当追求极致灵活性或是面对特殊需求时,Matplotlib 显然是首选;但如果希望减少编码量并迅速获得专业水准的结果,则应该考虑采用 Seaborn 。两者并非对立而是互补的存在,在实际应用过程中可以根据具体情况混合搭配使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值