前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >11.散点图&折线图&饼图1.散点图2.折线图饼图

11.散点图&折线图&饼图1.散点图2.折线图饼图

作者头像
用户1250179
发布2018-08-02 16:32:55
7640
发布2018-08-02 16:32:55
举报
文章被收录于专栏:数说戏聊数说戏聊

1.散点图

以一个变量为横坐标,另一个变量为纵坐标,利用散点(坐标点)的分布形态反映变量关系的图形。

用于探索数值型变量数据之间关系,传递变量间关系类型的信息,反映变量间关系的明确程度,与相关分析、回归分析结合使用。

散点图绘图函数

代码语言:javascript
复制
plot(x, y, '.', color=(r, g, b))
  • x, y, :X轴和Y轴的序列
  • '.'、'o':小点还是大点
  • color:散点图颜色,用RGB或英文字母定义

RGB颜色的设置

  • red:红色组成部分
  • green:绿色组成部分
  • blue:蓝色组成部分

常用RGB颜色对应表

屏幕快照 2018-07-08 06.48.15.png

代码语言:javascript
复制
import pandas
import numpy
import matplotlib
import matplotlib.pyplot as plt

data = pandas.read_csv(
    '/users/bakufu/desktop/6.1/data.csv'        
)

#1表示透明度
mainColor = (42/256, 87/256, 141/256, 1)

font = {
    'size': 14,
    'family': 'Microsoft YaHei Mono'
}

matplotlib.rc('font', **font)

#%matplotlib qt

#plt.grid(True)

小点的散点图

代码语言:javascript
复制
plt.xlabel('广告费用', color=mainColor)
plt.ylabel('购买用户数', color=mainColor)
plt.tick_params(axis='x', colors=mainColor)
plt.tick_params(axis='y', colors=mainColor)
plt.plot(
    data['广告费用'],
    data['购买用户数'],
    '.', color=mainColor        
)

屏幕快照 2018-07-08 07.21.38.png

大点的散点图

代码语言:javascript
复制
plt.xlabel('广告费用', color=mainColor)
plt.ylabel('购买用户数', color=mainColor)
plt.tick_params(axis='x', colors=mainColor)
plt.tick_params(axis='y', colors=mainColor)
plt.plot(
    data['广告费用'],
    data['购买用户数'],
    'o', color=mainColor        
)

屏幕快照 2018-07-08 07.21.51.png

代码语言:javascript
复制
#',' 像素点的散点图
plt.plot(
    data['购买日期'],
    data['购买用户数'],
    ',', color=mainColor        
)

#'v' 下三角标记的散点图
plt.plot(data['购买日期'], data['购买用户数'], 'v')
#'^' 上三角标记的散点图
#'<' 左三角标记的散点图
#'>' 右三角标记的散点图

#'1' 伞形下标记的散点图
plt.plot(data['购买日期'], data['购买用户数'], '1')
#'2' 伞形上标记的散点图
#'3' 伞形左标记的散点图
#'4' 伞形右标记的散点图

#'s'    正方形标记的散点图
#'p'    五角形标记的散点图
#'*'    五角星标记的散点图
#'h'    多边形标记的散点图
#'H'    hexagon2 marker
#'+'    plus marker
#'x'    x marker
#'D'    diamond marker
#'d'    thin_diamond marker
#'|'    vline marker
#'_'    hline marker

2.折线图

即趋势图,用直线段将各数据点连接起来而组成的图形,以折线方式显示数据的变化趋势。适合用于时间趋势的绘图。

折线图绘图函数

代码语言:javascript
复制
plot(x, y, style, color, linewidth)
title('图的标题')
  • style:画线的样式
  • color:画线的颜色
  • linewidth:线的宽度

plot函数的style参数意义表

参数值

注释

-

连续的曲线

--

连续的虚线

-.

连续的用带点的曲线

:

由点连成的曲线

.

小点,散点图

o

大点,散点图

,

像素点,散点图

*

五角星的点,散点图

代码语言:javascript
复制
import pandas
import matplotlib
from matplotlib import pyplot as plt

data = pandas.read_csv(
    '/users/bakufu/desktop/6.2/data.csv'        
)

#对日期格式进行转换
data['购买日期'] = pandas.to_datetime(
    data['日期']        
)

mainColor = (42/256, 87/256, 141/256, 1)

font = {
    'family': 'Microsoft YaHei Mono',
    'size': 12
}

matplotlib.rc('font', **font)

#%matplotlib qt

plt.xlabel(
    '购买日期',
    color=mainColor        
)
plt.ylabel(
    '购买用户数',
    color=mainColor        
)
plt.tick_params(
    axis='x',
    color=mainColor    
)

image.png

代码语言:javascript
复制
#'-' 顺滑的曲线
plt.plot(
    data['购买日期'],
    data['购买用户数'],
    '-', color=mainColor    
)
plt.title('购买用户数')
plt.show()

image.png

代码语言:javascript
复制
#设置线条粗细
plt.plot(
    data['购买日期'],
    data['购买用户数'],
    '-', color=mainColor,
    linewidth=5      
)

image.png

代码语言:javascript
复制
#'--' 虚线
plt.plot(
        data['购买日期'],
        data['购买用户数'],
        '--', color=mainColor
)

image.png

代码语言:javascript
复制
#'-.' 线加点
plt.plot(
        data['购买日期'],
        data['购买用户数'],
        '-.', color=mainColor
)

image.png

代码语言:javascript
复制
#':' 由点组成的曲线
plt.plot(
        data['购买日期'],
        data['购买用户数'],
        ':', color=mainColor
)

image.png

饼图

用于反映个体与总体的比例关系。

饼图绘图函数

代码语言:javascript
复制
pie(x, labels, colors, explode, autopct)
  • x:进行绘图的序列
  • labels:饼图各部分的标签序列
  • colors:饼图各部分的颜色(RGB)
  • explode:需要突出的块状序列
  • autopct:饼图占比的显示格式,%.2f保留两位小数
代码语言:javascript
复制
import numpy
import pandas
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.font_manager as font_manager

#%matplotlib qt
#设置不在交互式命令行绘图,在弹出新的窗口绘图

data = pandas.read_csv(
    '/users/bakufu/desktop/6.3/data.csv'        
)

result = data.groupby(
    by=['通信品牌'],
    as_index=False        
)['号码'].agg({
    '用户数': numpy.size        
})
Out[21]: 
   通信品牌    用户数
0   全球通     1209
1  动感地带    11838
2   神州行     18355

#设置长宽分辨率
plt.figure(figsize=(30, 30), dpi=80)

#设置字体
font = {
    'family': 'Microsoft YaHei Mono',
    'size': 20      
}
Out[24]:
{'family': 'Microsoft YaHei Mono', 'size': 20}

matplotlib.rc('font', **font)

#设置为横轴和纵轴等长的饼图,即圆形饼图
plt.axis('equal')
plt.pie(
    result['用户数'],
    labels=result['通信品牌'],
    autopct='%.2f%%'
)

image.png

代码语言:javascript
复制
#设置突出的部分
explode = (0.1, 0.2, 0.3)
plt.axis('equal')
plt.pie(
    result['用户数'],
    labels=result['通信品牌'],
    autopct='%0.2f%%',
    explode=explode,
    startangle=67
)

plt.show()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.07.08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.散点图
  • 2.折线图
  • 饼图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档