Python常用画图代码(折线图、柱状图、饼图)

简介: Python常用画图代码(折线图、柱状图、饼图)

简单记录一下最简单常用的三种论文插图的python画图代码,以作备忘。

有很多很牛b的作图教程,我也学不来,就扔给大家自己学吧:

  • 如何在论文中画出漂亮的插图?[1]

折线图

代码

import numpy as np
import matplotlib.pyplot as plt
# x轴刻度标签
x_ticks = ['a', 'b', 'c', 'd', 'e', 'f']
# x轴范围(0, 1, ..., len(x_ticks)-1)
x = np.arange(len(x_ticks))
# 第1条折线数据
y1 = [5, 3, 2, 4, 1, 6]
# 第2条折线数据
y2 = [3, 1, 6, 5, 2, 4]
# 设置画布大小
plt.figure(figsize=(10, 6))
# 画第1条折线,参数看名字就懂,还可以自定义数据点样式等等。
plt.plot(x, y1, color='#FF0000', label='label1', linewidth=3.0)
# 画第2条折线
plt.plot(x, y2, color='#00FF00', label='label2', linewidth=3.0)
# 给第1条折线数据点加上数值,前两个参数是坐标,第三个是数值,ha和va分别是水平和垂直位置(数据点相对数值)。
for a, b in zip(x, y1):
    plt.text(a, b, '%d'%b, ha='center', va= 'bottom', fontsize=18)
# 给第2条折线数据点加上数值
for a, b in zip(x, y2):
    plt.text(a, b, '%d'%b, ha='center', va= 'bottom', fontsize=18)
# 画水平横线,参数分别表示在y=3,x=0~len(x)-1处画直线。
plt.hlines(3, 0, len(x)-1, colors = "#000000", linestyles = "dashed")
# 添加x轴和y轴刻度标签
plt.xticks([r for r in x], x_ticks, fontsize=18, rotation=20)
plt.yticks(fontsize=18)
# 添加x轴和y轴标签
plt.xlabel(u'x_label', fontsize=18)
plt.ylabel(u'y_label', fontsize=18)
# 标题
plt.title(u'Title', fontsize=18)
# 图例
plt.legend(fontsize=18)
# 保存图片
plt.savefig('./figure.pdf', bbox_inches='tight')
# 显示图片
plt.show()

效果

柱状图

代码

import numpy as np
import matplotlib.pyplot as plt
# x轴刻度标签
x_ticks = ['a', 'b', 'c', 'd', 'e', 'f']
# 柱的宽度
barWidth = 0.25
# 第1个柱的x轴范围(每个柱子的中点)(0, 1, ..., len(x_ticks)-1)
x1 = np.arange(len(x_ticks))
# 第2个柱的x轴范围(每个柱子的中点)
x2 = [x + barWidth for x in x1]
# 第1个柱数据
y1 = [5, 3, 2, 4, 1, 6]
# 第2个柱数据
y2 = [3, 1, 6, 5, 2, 4]
# 设置画布大小
plt.figure(figsize=(10, 6))
# 画第1个柱
plt.bar(x1, y1, color='#FF0000', width=barWidth, label='label1')
# 画第2个柱
plt.bar(x2, y2, color='#00FF00', width=barWidth, label='label2')
# 给第1个柱数据点加上数值,前两个参数是坐标,第三个是数值,ha和va分别是水平和垂直位置(数据点相对数值)。
for a, b in zip(x1, y1):
    plt.text(a, b, '%d'%b, ha='center', va= 'bottom', fontsize=18)
# 给第2个柱数据点加上数值
for a, b in zip(x2, y2):
    plt.text(a, b, '%d'%b, ha='center', va= 'bottom', fontsize=18)
# 画水平横线
plt.hlines(3, 0, len(x_ticks)-1+barWidth, colors = "#000000", linestyles = "dashed")
# 添加x轴和y轴刻度标签
plt.xticks([r + barWidth/2 for r in x1], x_ticks, fontsize=18)
plt.yticks(fontsize=18)
# 添加x轴和y轴标签
plt.xlabel(u'x_label', fontsize=18)
plt.ylabel(u'y_label', fontsize=18)
# 标题
plt.title(u'Title', fontsize=18)
# 图例
plt.legend(fontsize=18)
# 保存图片
plt.savefig('./figure.pdf', bbox_inches='tight')
# 显示图片
plt.show()

效果

饼图

代码

import numpy as np
import matplotlib.pyplot as plt
# 设置画布大小
plt.figure(figsize=(10, 10))
# 设置每块区域的标签
labels = ['a', 'b', 'c', 'd', 'e']
# 设置每块区域离圆心的距离,这里a区域凸出一点点
explode = [0.05, 0.01, 0.01, 0.01, 0.01]
# 设置每块区域的值
values = [1, 5, 2, 4, 3]
# 设置每块区域的颜色
colors = ['#F5DEB3', '#87CEFA', '#FFB6C1', '#90EE90', '#D3D3D3']
_, l_text, p_text = plt.pie(values, explode=explode, labels=labels, autopct='%1.1f%%', colors=colors)
# 设置标签字体大小
for t in l_text:
    t.set_size(18)
# 设置数值字体大小
for t in p_text:
    t.set_size(18)
# 标题
plt.title(u'Title', fontsize=18)
# 图例
plt.legend(fontsize=18)
# 保存图片
plt.savefig('./figure.pdf', bbox_inches='tight')
# 显示图片
plt.show()

效果

相关文章
|
1天前
|
算法 搜索推荐 开发者
解锁Python代码的速度之谜:性能瓶颈分析与优化实践
探索Python性能优化,关注解释器开销、GIL、数据结构选择及I/O操作。使用cProfile和line_profiler定位瓶颈,通过Cython减少解释器影响,多进程避开GIL,优化算法与数据结构,以及借助asyncio提升I/O效率。通过精准优化,Python可应对高性能计算挑战。【6月更文挑战第15天】
10 1
|
3天前
|
存储 安全 API
【译】使用“不安全“的Python加速100倍代码运行速度
【译】使用“不安全“的Python加速100倍代码运行速度
|
3天前
|
存储 Python 容器
【Python数据魔术】:揭秘类型奥秘,赋能代码创造
【Python数据魔术】:揭秘类型奥秘,赋能代码创造
|
3天前
|
IDE 开发工具 Python
black--一键格式化Python代码
black--一键格式化Python代码
|
3天前
|
API 语音技术 Python
【python的魅力】:教你如何用几行代码实现文本语音识别
【python的魅力】:教你如何用几行代码实现文本语音识别
|
3天前
|
XML 数据格式 Python
Python零基础入门-1 从一行代码开始运行Python程序(续)
Python零基础入门-1 从一行代码开始运行Python程序(续)
|
3天前
|
测试技术 Python
Python零基础入门-1 从一行代码开始运行Python程序
Python零基础入门-1 从一行代码开始运行Python程序
|
3天前
|
Python
Python学习笔记之Matplotlib模块入门(直线图、折线图、曲线图、散点图、柱状图、饼状图、直方图、等高线图和三维图的绘制)-2
Python学习笔记之Matplotlib模块入门(直线图、折线图、曲线图、散点图、柱状图、饼状图、直方图、等高线图和三维图的绘制)
|
3天前
|
数据可视化 开发者 Python
Python学习笔记之Matplotlib模块入门(直线图、折线图、曲线图、散点图、柱状图、饼状图、直方图、等高线图和三维图的绘制)-1
Python学习笔记之Matplotlib模块入门(直线图、折线图、曲线图、散点图、柱状图、饼状图、直方图、等高线图和三维图的绘制)
|
4天前
|
机器学习/深度学习 存储 算法
基于YOLOv8与ByteTrack的车辆行人多目标检测与追踪系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、运动物体追踪
基于YOLOv8与ByteTrack的车辆行人多目标检测与追踪系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、运动物体追踪