Python中的绘图工具包 上

这篇博客介绍了如何使用Python的matplotlib库绘制散点图、连线图和频率直方图。通过示例代码展示了从列表、数组到DataFrame数据的不同绘制方法,并包括了三维散点图的绘制。此外,还展示了如何用plt.plot函数画连线图,以及如何利用plt.hist函数创建频率直方图。
摘要由CSDN通过智能技术生成

1.画散点图(plt.scatter函数)

(1)列表数据画散点图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline 
height = [168,150,200,190,185,100,125,180]     
weight = [60,65,73,70,65,58,66,67] 
plt.figure(figsize=(8, 4))  #画板尺寸
plt.scatter(height, weight,color='red',marker='+')   #画散点图必须有两列数据
plt.title('beauty')   #图形标题
plt.xlabel('weight')  #X轴标签
plt.ylabel('height')     #Y轴标签
plt.show() 

(2)数组数据画散点图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline 
height =np.array([168,150,200,190,185,100,125,180]) 
weight =np.array([60,65,73,70,65,58,66,67]) 
plt.figure(figsize=(8, 4))  #画板尺寸
plt.scatter(height, weight)   #画散点图必须有两列数据
plt.title('beauty')   #图形标题
plt.xlabel('weight')  #X轴标签
plt.ylabel('height')     #Y轴标签
plt.show() 

(3)Series画散点图

forest_fires = pd.read_csv('forest_fires.csv')
plt.figure(figsize=(8,4))
plt.scatter(forest_fires["wind"],forest_fires["area"],c="red") #须有两列数据
plt.grid(True)    #是否显示网格

 

 (4)DataFrame画散点图

np.random.seed(20)
data=pd.DataFrame(np.random.randn(1000,4),columns=list('ABCD'))
data=data.cumsum()
print(data.head())
plt.scatter(data['A'],data['B'],c='r')
plt.scatter(data['B'],data['C'],c='b')
plt.show()

 (5)三维散点图绘制

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
data = np.random.randint(0, 255, size=[40, 40, 40])
x, y, z = data[0], data[1], data[2]
fig1 = plt.figure(1)
ax = Axes3D(fig1)
#  将数据点分成三部分画,在颜色上有区分度
ax.scatter(x[:10], y[:10], z[:10], c='b')  # 绘制数据点
ax.scatter(x[10:20], y[10:20], z[10:20], c='y')
ax.scatter(x[30:40], y[30:40], z[30:40], c='r')
ax.set_zlabel('Z')  # 坐标轴
ax.set_ylabel('Y')
ax.set_xlabel('X')
plt.show()

 2.画连线图(plt.plot函数)

(1)列表数据

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline 
age = [5, 10, 15, 20, 25, 30]
high=[60,100,150,170,171,171]
plt.figure(figsize=(8,4))
plt.plot(age)#连线图可以只有一列数据,默认该列数据为纵坐标,横坐标为序号(从0开始)。
plt.plot(age, high) 
plt.grid(True)
plt.title('Age vs High')  #图形名称
plt.xlabel('age')           #X轴标签
plt.ylabel('high')        #Y轴标签
plt.show()

 (2)DataFrame数据

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
np.random.seed(20)
data=pd.DataFrame(np.random.randn(1000,4),columns=list('MNOP'))
data=data.cumsum()
data.plot()
plt.show()
data.plot(x='P',y='N',kind='line')
plt.show()

3.频率直方图

import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline 
s = np.random.normal(3,2,300)
plt.figure(figsize=(10,5))   
plt.hist(s, bins=50, normed=True)   #频率直方图,bins表示样本值分成多少个区间
#plt.hist(s, bins=50)  #纵坐标是每个间隔中包含的值的数量,不是频率.
plt.show()

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值