社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

一文学会Python绘制常见二维图

happy科研 • 3 年前 • 242 次点击  

背景介绍

今天我们来学习一下,使用Python如何绘制常见的二维图形。

教程代码可直接复制,粘贴到python的IDE中进行运行即可出图。

软件介绍

[软件名称]:Anaconda | Spyder

[软件安装]:可以参考下方这个推文

Anaconda的下载和安装

基础绘图

折线图

# 导入库
import matplotlib.pyplot as plt

# 设置数据
date = [0,3,7,10,15,20,21,25,26,30]
body_temp = [36.8, 37.2, 37.6,37.8,38.5, 38.2, 38.0, 37.5, 37.6, 36.8]

# 绘制折线图
plt.plot(date,body_temp,
        # 设置颜色
        color = "r",
        # 设置线型
        linestyle = "--",
        # 设置标记
        marker = "o")

# 设置x标签
plt.xlabel("Date (day)")
# 设置y标签
plt.ylabel("Body temperature (℃)")
# 设置标题
plt.title("The change of body temperature")
# 设置x轴的标签
plt.xticks([0,10,20,30])
# 设置y轴的标签
plt.yticks([36,37, 38,39])
plt.show()

多条折线

# 导入库
import matplotlib.pyplot as plt

# 设置数据
date = [0,3,7,10,15,20,21,25,26,30]
body_temp = [36.8, 37.2, 37.6,37.8,38.5, 38.2, 38.0, 37.5, 37.6, 36.8]

body_temp2 = [36.3, 36.8, 36.9, 37.1,37.5, 38.2, 37.9, 37.8, 37.7, 36.4]

# 绘制第一条线
plt.plot(date,body_temp,
        color = "r",
        marker = "+",
        label = "Line1")
# 绘制第二条线
plt.plot(date,body_temp2,
        color = "g",
        marker = "^",
        label = "Line2")
plt.xlabel("Date (day)")
plt.ylabel("Body temperature (℃)")
plt.title("The change of body temperature")
plt.legend()

散点图

# 导入库
import matplotlib.pyplot as plt

# 设置数据
date = [0,3,7,10,15 ,20,21,25,26,30]
body_temp = [36.8, 37.2, 37.6,37.8,38.5, 38.2, 38.0, 37.5, 37.6, 36.8]

plt.scatter(date,body_temp,
           color = "r")
plt.show()

两个散点图

# 导入库
import matplotlib.pyplot as plt

# 导入库
import matplotlib.pyplot as plt

# 设置数据
date = [0,3,7,10,15,20,21,25,26,30]
body_temp = [36.8, 37.2, 37.6,37.8,38.5, 38.2, 38.0, 37.5, 37.6, 36.8]

body_temp2 = [36.3, 36.8, 36.9, 37.1,37.5, 38.2, 37.9, 37.8, 37.7, 36.4]

# 绘制第一条线
plt.scatter(date,body_temp,
        color = "r",
        marker = "+",
        label = "Line1")
# 绘制第二条线
plt.scatter(date,body_temp2,
        color = "g",
        marker = "^",
        label = "Line2")
plt.xlabel("Date (day)")
plt.ylabel("Body temperature (℃)")
plt.title("The change of body temperature")
plt.legend()

柱状图

# 导入库
import matplotlib.pyplot as plt

# 设置数据
date = [0,1,2,3,4,5,6,7,8,9]
body_temp = [36.8, 37.2, 37.6,37.8,38.5, 38.2, 38.0, 37.5, 37.6, 36.8]

plt.bar(date,body_temp,
        color = "r")
plt.ylim(36,39)
plt.xlabel("Date (day)")
plt.ylabel("Body temperature (℃)")
plt.title("The change of body temperature")
plt.legend()

色彩斑斓的柱状图

通过给与三个或多个颜色连续性填充

# 导入库
import matplotlib.pyplot as plt

# 设置数据
date = [0,1,2,3,4,5,6,7,8,9]
body_temp = [36.8, 37.2, 37.6,37.8,38.5, 38.2, 38.0, 37.5, 37.6, 36.8]

plt.bar(date,body_temp,
       # 填充三种颜色
        color = ["r","g","b"],
        # 填充形状
        hatch = ["/"])
plt.ylim(36,39)
plt.xlabel("Date (day)")
plt .ylabel("Body temperature (℃)")
plt.title("The change of body temperature")
plt.legend()

其他的填充形状

'/', '\', '|', '-', '+', 'x','o', 'O', '.', '*'

饼图

# 导入库
import matplotlib.pyplot as plt

# 设置数据
value = [100,200,300,400,500]
label = ["a","b","c","d","e"]

# 绘图
plt.pie(x = value,labels = label,
       # 设置颜色
       colors = ['y' ,'g','c','gray',"b"],
       # 添加阴影
       shadow = True,
       # 添加百分比
       autopct = "%1.1f%%",
       # 设置标签距离
       pctdistance = 0.8,
       # 设置角度
       startangle = 90)

空心饼图

# 导入库
import matplotlib.pyplot as plt

# 设置数据
value = [100,200,300,400,500]
label = ["a","b","c","d","e"]

# 绘图
plt.pie(x = value,labels = label,
       colors = ['y','g','c','gray',"b"],
       autopct = "%1.1f%%",
       pctdistance = 0.8,
       startangle = 90,
       # 设置空心距离
       wedgeprops = dict(width = 0.5))

箱线图/小提琴图

# 导入库
import matplotlib.pyplot as plt

# 设置数据
data1 = [8,3,19,12,14,56,40,36,27,10,11]
data2 = [1,3,15,12,15,30,13,16,27,10, 11]
data3 = [8,3,10,12,14,56,67,36,27,10,100]

#箱子图
plt.boxplot([data1,data2,data3],
           labels = ["data1","data2","data3"])
#小提琴图
plt.violinplot([data1,data2,data3])


往 期 推 荐
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/135822
 
242 次点击