开发者社区> 王小王-123> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

matplotlib绘制散点图之基本配置——万能模板案例(一)

简介: matplotlib绘制散点图之基本配置——万能模板案例
+关注继续查看

散点图

散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量变化的大致趋势,据此可以选择合适的函数对数据点进行拟合

用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。散点图将序列显示为一组点。值由点在图表中的位置表示。类别由图表中的不同标记表示。散点图通常用于比较跨类别的聚合数据。

下面给出一个散点图的具体代码案例

import matplotlib.pyplot as plt
import pandas  as pd
import  numpy as np
 
plt.figure(figsize=(9,5),   # (宽度 , 高度) 单位inch 
           dpi=120,         #  清晰度 dot-per-inch
#            facecolor='#CCCCCC', # 画布底色
#            edgecolor='black',linewidth=0.2,frameon=True, # 画布边框
           #frameon=False  # 不要画布边框
          )   
# 设置全局中文字体
plt.rcParams['font.sans-serif'] = 'KaiTi' # 设置全局字体为中文 楷体
plt.rcParams['axes.unicode_minus'] = False # 不使用中文减号
 
#读取数据
crime=pd.read_csv("crimeRatesByState2005.csv")
print (list(crime.murder))#转化成列表
#删除state为United States的数据
crime2 = crime[crime.state != "United States"]
#删除state为District of Columbia的数据
crime2 = crime2[crime2.state != "District of Columbia" ]
z = list(crime2.population/10000)#取人口数据
#colors = np.random.rand(len(list(crime2.murder)))#根据谋杀率随机去颜色
cm = plt.cm.get_cmap('RdYlBu')#使用色谱RdYlBu
plt.scatter(list(crime2.murder), list(crime2.burglary), s=z,c=z,cmap = cm, linewidth = 0.5, alpha     = 0.5)#绘制散点图
plt.xlabel("murder")
plt.ylabel("burglary")
plt.show()

image.png


散点图一行代码显示

# 读取数据
df = pd.read_csv('iris.csv')
# 平面坐标系的位置只能表示2维数据
x = df['sepal_length']
y = df['sepal_width']
# 根据X,Y值画散点图
plt.scatter(x,y)


image.png


加颜色的散点图

# 读取数据
df = pd.read_csv('iris.csv')
# 平面坐标系的位置只能表示2维数据
x = df['sepal_length']
y = df['sepal_width']
c = df['species'].map({'setosa':'r','versicolor':'g','virginica':'b'})
# 根据X,Y值画散点图, 用不同的颜色标识不同的分类
plt.scatter(x,y, c=c)


image.png


颜色深浅表示数值大小

# 读取数据
df = pd.read_csv('iris.csv')
# 平面坐标系的位置只能表示2维数据
x = df['sepal_length']
y = df['sepal_width']
c = df['petal_length']
# 根据X,Y值画散点图, 用颜色的深浅表示花萼的长度
plt.scatter(x,y, c=c, cmap=plt.cm.RdYlBu)


image.png


散点图显示颜色和大小

# 读取数据
df = pd.read_csv('iris.csv')
# 平面坐标系的位置只能表示2维数据
x = df['sepal_length']  # x 轴坐标
y = df['sepal_width']   # y 轴坐标
c = df['petal_length']  # 颜色color
s = df['petal_width']   # 大小size
# 根据X,Y值画散点图, 用颜色的深浅表示花萼的长度,用大小表示花萼的宽度
plt.figure(figsize=(5,5),dpi=100)
#plt.scatter(x,y, c=c, s=50)  # 可以是标量,那么所有的点都一样
plt.scatter(x,y, c=c, s=s*30)

image.png


自定义图表散点图

# 读取数据
df = pd.read_csv('iris.csv')
def get_xycs(df):
    # 平面坐标系的位置只能表示2维数据
    x = df['sepal_length']  # x 轴坐标
    y = df['sepal_width']   # y 轴坐标
    c = df['petal_length']  # 颜色color
    s = df['petal_width']   # 大小size
    return x,y,c,s
markers = {'setosa':'o', 'versicolor':'D', 'virginica':'*'}
# 根据X,Y值画散点图, 用颜色的深浅表示花萼的长度,用大小表示花萼的宽度, 每组数据只能是一种点样式

plt.figure(figsize=(5,5),dpi=100)

#plt.scatter(x,y, c=c, s=50)  # 可以是标量,那么所有的点都一样

for sp in df['species'].unique():

   x,y,c,s = get_xycs(df[df['species']==sp])

   plt.scatter(x,y, c=c, s=s*30, cmap=plt.cm.seismic, marker=markers[sp],label=sp)

   

plt.legend()


image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
matplotlib绘制树形图之基本配置——万能模板案例
matplotlib绘制树形图之基本配置——万能模板案例
11 0
matplotlib绘制雷达图之基本配置——万能模板案例
matplotlib绘制雷达图之基本配置——万能模板案例
14 0
matplotlib绘制火柴杆图之基本配置——万能模板案例
matplotlib绘制火柴杆图之基本配置——万能模板案例
14 0
matplotlib绘制火柴杆图之基本配置——万能模板案例
matplotlib绘制火柴杆图之基本配置——万能模板案例
16 0
Matplotlib绘制子图
有时,我们希望检查数据的多个方面间的关系,例如我们不仅希望得到时间与温度的关系,同时我们也需要关注时间与风力等方面之间的关系,Matplotlib提供了将多个图形组合在一起的方法。
734 0
Python编程:matplotlib绘制散点图
Python编程:matplotlib绘制散点图
45 0
matplotlib 雷达图2
说明 搞了一个最新版本的雷达图,比以前那个美观。 不多说,代码奉上: 完整代码 ''' matplotlib雷达图 ''' import numpy as np import matplotlib.pyplot as plt # 雷达图 def plot_radar(labels, data, score): ''' 用法: >>> labels = np.
893 0
matplotlib雷达图
用matplotlib画雷达图,网上流传的版本其实都是官网的一个例子。但是那个例子太复杂,而且它封装了几个类,让人难以一眼看出其本质。   我给出一个简单的解决方法,没有任何封装。作本文的原因,是为了回答百度网友的提问。
648 0
+关注
王小王-123
快乐代码,精彩人生!
268
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载