精华内容
下载资源
问答
  • 目录简单的图表设置直方图垂直条状图水平条状图多序列条状图多序列堆积条状图其他条形图饼状图箱线图简单的图表设置下载matplotlib库,引入pyplot模块,并命名为pltimport matplotlib.pyplot as plt生成简单图表plt....

    目录

    简单的图表设置

    直方图

    垂直条状图

    水平条状图

    多序列条状图

    多序列堆积条状图

    其他条形图

    饼状图

    箱线图

    简单的图表设置

    下载matplotlib库,引入pyplot模块,并命名为plt

    import matplotlib.pyplot as plt

    生成简单图表

    plt.plot([1, 2 , 3, 4])

    2

    输入点,默认用蓝线串一起

    展现单个点

    plt.plot([1, 2, 3, 4], [1, 4, 8, 16], 'ro')

    plt.show()

    3

    加入标题 title

    plt.axis([0, 10, 0, 30])

    plt.title('My first plot')

    plt.plot([1, 2, 3, 4], [1, 4, 8, 16], 'ro')

    plt.show()

    设置x 轴和Y轴的范围 axis

    plt.axis([0, 10, 0, 30])

    plt.title('My first plot')

    plt.plot([1, 2, 3, 4], [1, 4, 8, 16], 'ro')

    plt.show()

    5

    改变线条的粗细 linewidth

    plt.plot([1, 2, 4, 2, 1, 0, 1, 2, 1, 4], linewidth=10.0)

    plt.show()

    6

    给x轴和y轴命名xlabel, ylabel

    plt.axis([0, 5, 0, 20])

    plt.title('My first plot')

    plt.xlabel('Counting')

    plt.ylabel('Square balues')

    plt.plot([1, 2, 3, 4], [1, 4, 8, 16], 'ro')

    plt.show()

    7

    指定字体,改变字体的大小,指定字体的颜色 fontsize, fontname, color

    plt.axis([0, 5, 0, 20])

    plt.title('My first plot', fontsize=20,fontname='Times New Roman')

    plt.xlabel('Counting', color='green')

    plt.ylabel('Square balues', color='blue')

    plt.plot([1, 2, 3, 4], [1, 4, 8, 16], 'ro')

    plt.show()

    8

    在图表的任意位置添加文本 text

    plt.axis([0, 5, 0, 20])

    plt.title('My first plot', fontsize=20,fontname='Times New Roman')

    plt.xlabel('Counting', color='green')

    plt.ylabel('Square balues', color='blue')

    plt.text(1, 1.5, 'First')

    plt.text(2, 4.5, 'Second')

    plt.text(3, 9.5, 'Third')

    plt.text(4, 16.5, 'Fourth')

    plt.plot([1, 2, 3, 4], [1, 4, 8, 16], 'ro')

    plt.show()

    9

    在图表中添加数学表达式 $ ....$

    plt.axis([0, 5, 0, 20])

    plt.title('My first plot', fontsize=20,fontname='Times New Roman')

    plt.xlabel('Counting', color='green')

    plt.ylabel('Square balues', color='blue')

    plt.text(1, 1.5, 'First')

    plt.text(2, 4.5, 'Second')

    plt.text(3, 9.5, 'Third')

    plt.text(4, 16.5, 'Fourth')

    plt.text(1.1, 12, r'$y = x^2$', fontsize=20, bbox={'facecolor' : 'yellow', 'alpha' : 0.2})

    plt.plot([1, 2, 3, 4], [1, 4, 8, 16], 'ro')

    plt.show()

    10

    添加网格 grid

    plt.axis([0, 5, 0, 20])

    plt.title('My first plot', fontsize=20,fontname='Times New Roman')

    plt.xlabel('Counting', color='green')

    plt.ylabel('Square balues', color='blue')

    plt.text(1, 1.5, 'First')

    plt.text(2, 4.5, 'Second')

    plt.text(3, 9.5, 'Third')

    plt.text(4, 16.5, 'Fourth')

    plt.text(1.1, 12, r'$y = x^2$', fontsize=20, bbox={'facecolor' : 'yellow', 'alpha' : 0.2})

    plt.grid(True)

    plt.plot([1, 2, 3, 4], [1, 4, 8, 16], 'ro')

    plt.show()

    11

    添加图例 legend

    plt.axis([0, 5, 0, 20])

    plt.title('My first plot', fontsize=20,fontname='Times New Roman')

    plt.xlabel('Counting', color='green')

    plt.ylabel('Square balues', color='blue')

    plt.text(1, 1.5, 'First')

    plt.text(2, 4.5, 'Second')

    plt.text(3, 9.5, 'Third')

    plt.text(4, 16.5, 'Fourth')

    plt.text(1.1, 12, r'$y = x^2$', fontsize=20, bbox={'facecolor' : 'yellow', 'alpha' : 0.2})

    plt.grid(True)

    plt.plot([1, 2, 3, 4], [1, 4, 8, 16], 'ro')

    plt.legend(['First series'])

    plt.show()

    确定图例位置 loc

    0 —— 最佳位置

    1 —— 右上角

    2 —— 左上角

    3 —— 右下角

    4 —— 左下角

    5 —— 右侧 ——7 —— 右侧垂直居中

    6 —— 左侧垂直居中

    8 —— 下方水平居中

    9 —— 上方水平居中

    10 —— 正中间

    plt.axis([0, 5, 0, 20])

    plt.title('My first plot', fontsize=20,fontname='Times New Roman')

    plt.xlabel('Counting', color='green')

    plt.ylabel('Square balues', color='blue')

    plt.text(1, 1.5, 'First')

    plt.text(2, 4.5, 'Second')

    plt.text(3, 9.5, 'Third')

    plt.text(4, 16.5, 'Fourth')

    plt.text(1.1, 12, r'$y = x^2$', fontsize=20, bbox={'facecolor' : 'yellow', 'alpha' : 0.2})

    plt.grid(True)

    plt.plot([1, 2, 3, 4], [1, 4, 8, 16], 'ro')

    plt.plot([1, 2, 3, 4], [0.8, 3.5, 8, 15], 'g^')

    plt.plot([1, 2, 3, 4], [0.5, 2.5, 4, 12], 'b*')

    plt.legend(['First series', 'Second series', 'Third series'], loc=2)

    plt.show()

    13

    日期处理

    导入matplotlib.dates模块,该模块用于管理日期类型的数据。

    定义时间尺度

    MonthLocator 函数 表示:月份

    Daylocator() 函数,表示: 日期

    在X轴上设置两种不同的标签:

    set_major_locator()函数:月份

    set_minor_formatter()函数:日期

    颜色

    b —— 蓝色

    g —— 绿色

    r —— 红色

    c —— 蓝绿色

    m —— 洋红

    y —— 黄色

    k —— 黑色

    w —— 白色

    要选用实用的颜色,考虑色弱人群

    常用颜色

    线性图

    x = np.arange(-2*np.pi, 2*np.pi, 0.01)

    y = np.sin(3 * x)/x

    plt.plot(x,y)

    plt.show()

    线性图

    直方图hist()

    #生成100个0-100的随机数

    pop = np.random.randint(0, 100, 100)

    n, bin, patches = plt.hist(pop, bins=100)

    plt.show()

    直方图

    垂直条状图: bar() 函数

    简单的条状图

    index= [0, 1, 2, 3, 4]

    values = [5, 7, 3, 4, 6]

    plt.bar(index, values)

    plt.show()

    output_18_0.png

    将轴标签移位,和代替 xticks()

    index = np.arange(5)

    values = [5, 6, 3, 4, 6]

    plt.bar(index, values)

    plt.xticks(index+0.2,['a', 'b', 'c', 'd', 'e'])

    plt.show()

    output_19_0.png

    带有误差线的条状图

    yerr关键字参数:可传入包含标准差的列表

    error_kw={} , 接收显示误差线的关键字函数

    eColor:指定误差线的颜色

    capsize :指定误差线两头横线的宽度

    alpha:控制彩色条状图的透明度, 范围0-1

    index = np.arange(5)

    values = [5, 6, 3, 4, 6]

    std = [0.8, 2, 0.4, 0.9, 1.3]

    plt.title('A Bar Chart')

    plt.bar(index, values, yerr = std, error_kw = {'ecolor' : '0.2', 'capsize' :6}, alpha=0.7, label = 'First')

    plt.xticks(index+0.2,['a', 'b', 'c', 'd', 'e'])

    plt.legend(loc=2)

    plt.show()

    output_20_0.png

    水平条状图 barh()函数

    x, y轴与垂直条状图相反

    index = np.arange(5)

    values = [5, 6, 3, 4, 6]

    std = [0.8, 2, 0.4, 0.9, 1.3]

    plt.title('A Horizontal Bar Chart')

    plt.barh(index, values, xerr = std, error_kw = {'ecolor' : '0.6', 'capsize' :3}, alpha=0.9, label = 'First')

    plt.yticks(index+0.2,['a', 'b', 'c', 'd', 'e'])

    plt.legend(loc=5)

    plt.show()

    output_21_0.png

    多序列条状图

    index= np.arange(5)

    values1 = [5, 6, 7, 3, 4]

    values2 = [5, 6, 5, 2, 4]

    values3 = [7, 2, 5, 7, 2]

    bw = 0.3

    plt.axis([0, 5, 0, 8])

    plt.title('A Bar Chart', fontsize = 20)

    plt.bar(index, values1, bw, color = 'b')

    plt.bar(index+bw, values2, bw, color = 'c')

    plt.bar(index+2*bw, values3, bw, color='m')

    plt.xticks(index+1.5*bw, ['a', 'b', 'c', 'd', 'e'])

    plt.show()

    output_22_0.png

    多序列堆积条状图 bottom关键字参数

    series1 = np.array([3, 4, 5, 3])

    series2 = np.array([1, 2, 2, 5])

    series3 = np.array([2, 3, 3, 4])

    index = np.arange(4)

    plt.axis([0, 4, 0, 15])

    plt.title('A Bar Chart', fontsize = 20)

    plt.bar(index,series1, color = 'k')

    plt.bar(index, series2, color = 'c', bottom= series1)

    plt.bar(index, series3, color='m', bottom = ( series2+ series1))

    plt.xticks(index+0.2, ['a', 'b', 'c', 'd', 'e'])

    plt.show()

    output_23_0.png

    其他条形图

    x0 = np.arange(8)

    y1 = np.array([1, 3, 4, 6, 4, 3, 2, 1])

    y2 = np.array([1, 2, 5, 3, 5, 3,1, 1])

    plt.ylim(-7,7)

    plt.bar(x0, y1, 0.9, facecolor = 'm', edgecolor = 'w')

    plt.bar(x0, -y2, 0.9, facecolor = 'c', edgecolor = 'w')

    plt.xticks(())

    plt.grid(True)

    for x, y in zip(x0, y1):

    plt.text(x , y + 0.05, '%d' % y, ha = 'center', va = 'bottom')

    for x, y in zip(x0, y2):

    plt.text(x , -y -0.05, '%d' %y, ha = 'center', va = 'top')

    plt.show()

    output_24_0.png

    饼状图 pie函数()

    color : 颜色

    labels : 每一小块添加标签

    axis() 函数, 字符串equal作为参数,:绘制标准的圆形饼图

    explode, 取值范围0-1:抽取某块

    startangle:调整饼图的旋转角度

    shadow, 设置为True:添加阴影效果

    autopct:显示百分比

    普通饼状图 pie

    labels = ['Nokia', 'Samsung', 'Apple', 'Lumia']

    values = [10, 30, 45, 15]

    colors = ['y', 'k', 'm', 'b']

    plt.pie(values, labels = labels, colors = colors)

    plt.axis('equal')

    plt.show()

    output_25_0.png

    抽取并旋转 explode, startangle

    labels = ['Nokia', 'Samsung', 'Apple', 'Lumia']

    values = [10, 30, 45, 15]

    colors = ['y', 'k', 'm', 'b']

    explode = [0.3, 0, 0, 0]

    plt.pie(values, labels = labels, colors = colors, explode = explode, startangle = 180)

    plt.axis('equal')

    plt.show()

    output_26_0.png

    显示百分比,并添加阴影效果 autopct, shadow

    labels = ['Nokia', 'Samsung', 'Apple', 'Lumia']

    values = [10, 30, 45, 15]

    colors = ['y', 'k', 'm', 'b']

    explode = [0.3, 0, 0, 0]

    plt.pie(values, labels = labels, colors = colors, explode = explode, startangle = 180, shadow = True, autopct = '%1.1f%%')

    plt.axis('equal')

    plt.title('A Pie Chart')

    plt.show()

    output_27_0.png

    箱线图 boxplot()

    dataset = [2, 4, 9, 1, 5,

    5, 6, 3, 2, 2,

    7, 8, 3, 6, 2,

    0, 2, 5, 3, 2]

    plt.boxplot(dataset, vert= False)

    plt.show()

    展开全文
  • Python数据可视化(2017年机械工业出版社出版的图书)编辑锁定讨论上传视频《Python数据可视化》是2017年机械工业出版社出版的图书,作者是科斯·拉曼。书名Python数据可视化作者科斯·拉曼译者[印度] 科斯·拉曼...

    Python数据可视化

    (2017年机械工业出版社出版的图书)

    编辑

    锁定

    讨论

    上传视频

    《Python数据可视化》是2017年机械工业出版社出版的图书,作者是科斯·拉曼。

    书    名

    Python数据可视化

    作    者

    科斯·拉曼

    译    者

    [印度] 科斯·拉曼(Kirthi Raman) 著出版社

    机械工业出版社

    出版时间

    2017年04月

    定    价

    69 元

    ISBN

    978-7-111-56090-6

    Python数据可视化内容简介

    编辑

    [1]

    书由资深数据工程师撰写,融合其多年实践经验,既详细讲解了分析和可视化的方法,又给出了不用领域的实际应用案例,为深入理解并灵活应用Python进行数据可视化提供实用指南。

    本书开篇首先探讨数据框架,解释了数据转换为信息,最终转换为知识的过程。随后,举例讲解用流行的Python库实现可视化的过程。你将学到如何使用NumPy、SciPy、IPython、matplotlib、pandas、patsy和scikit-learn,了解这些工具如何用不同方法可视化生成结果。接下来的内容不仅展示了诸如交互式绘图、数值、线形图解法和非线性回归、聚类和分类等先进技术,而且有助于你理解数据可视化的美学特征和最佳案例。本书最后还给出一些有趣的案例,比如社会网络、现实生活中的有向图举例、适合这些问题的数据结构,以及网络分析。

    全面讲解Python在不同应用领域的可视化方法

    涵盖Python的各种绘图选项,包含大量实际应用案例

    随着海量信息的增长,需要处理的数据越来越多。这些数据包含着许多掌控当代成功命脉的看法与见解。能够发现数据、清洗数据,并使用正确的工具实现可视化至关重要。本书讲解了用Python软件包实现数据可视化的一些不同方法,并给出很多不同领域的案例,比如,数值计算、财务模型、统计机器学习,以及遗传学与网络等。[2]

    Python数据可视化图书目录

    编辑

    译者序

    前 言

    第1章 数据可视化概念框架 1

    1.1 数据、信息、知识和观点 2

    1.1.1 数据 2

    1.1.2 信息 2

    1.1.3 知识 3

    1.1.4 数据分析和观点 3

    1.2 数据转换 4

    1.2.1 数据转换为信息 4

    1.2.2 信息转换为知识 7

    1.2.3 知识转换为观点 7

    1.3 数据可视化历史 8

    1.4 可视化如何帮助决策 10

    1.4.1 可视化适用于哪里 11

    1.4.2 如今的数据可视化 12

    1.5 可视化图像 15

    1.5.1 条形图和饼图 19

    1.5.2 箱线图 22

    1.5.3 散点图和气泡图 23

    1.5.4 核密度估计图 26

    1.6 总结 29

    第2章 数据分析与可视化 30

    2.1 为什么可视化需要规划 31

    2.2 Ebola案例 31

    2.3 体育案例 37

    2.4 用数据编写有趣的故事 47

    2.4.1 为什么故事如此重要 47

    2.4.2 以读者驱动为导向的故事 47

    2.4.3 以作者驱动为导向的故事 53

    2.5 感知与表达方法 55

    2.6 一些最好的可视化实践 57

    2.6.1 比较和排名 57

    2.6.2 相关性 58

    2.6.3 分布 59

    2.6.4 位置定位或地理数据 61

    2.6.5 局部到整体的关系 61

    2.6.6 随时间的变化趋势 62

    2.7 Python中的可视化工具 62

    2.8 交互式可视化 64

    2.8.1 事件监听器 64

    2.8.2 布局设计 65

    2.9 总结 67

    第3章 开始使用Python IDE 69

    3.1 Python中的IDE工具 70

    3.1.1 Python 3.x和Python 2.7 70

    3.1.2 交互式工具类型 70

    3.1.3 Python IDE类型 72

    3.2 Anaconda可视化绘图 83

    3.2.1 表面三维图 83

    3.2.2 方形图 85

    3.3 交互式可视化软件包 89

    3.3.1 Bokeh 89

    3.3.2 VisPy 90

    3.4 总结 91

    第4章 数值计算和交互式绘图 92

    4.1 NumPy、SciPy和MKL函数 93

    4.1.1 NumPy 93

    4.1.2 SciPy 99

    4.1.3 MKL函数 105

    4.1.4 Python的性能 106

    4.2 标量选择 106

    4.3 切片 107

    4.4 数组索引 108

    4.4.1 数值索引 108

    4.4.2 逻辑索引 109

    4.5 其他数据结构 110

    4.5.1 栈 110

    4.5.2 元组 111

    4.5.3 集合 112

    4.5.4 队列 113

    4.5.5 字典 114

    4.5.6 字典的矩阵表示 115

    4.5.7 Trie树 120

    4.6 利用matplotlib进行可视化 121

    4.6.1 词云 122

    4.6.2 安装词云 122

    4.6.3 词云的输入 124

    4.6.4 绘制股票价格图 129

    4.7 体育运动中的可视化案例 136

    4.8 总结 140

    第5章 金融和统计模型 141

    5.1 确定性模型 142

    5.2 随机性模型 150

    5.2.1 蒙特卡洛模拟 150

    5.2.2 投资组合估值 168

    5.2.3 模拟模型 170

    5.2.4 几何布朗运动模拟 170

    5.2.5 基于扩散模拟 173

    5.3 阈值模型 175

    5.4 统计与机器学习综述 179

    5.4.1 k-最近邻算法 179

    5.4.2 广义线性模型 181

    5.5 创建动画和交互图 184

    5.6 总结 188

    第6章 统计与机器学习 189

    6.1 分类方法 190

    6.1.1 理解线性回归 191

    6.1.2 线性回归 193

    6.1.3 决策树 196

    6.1.4 贝叶斯理论 199

    6.1.5 朴素贝叶斯分类器 200

    6.1.6 用TextBlob构建朴素贝叶斯分类器 202

    6.1.7 用词云观察积极情绪 206

    6.2 k-最近邻 208

    6.3 逻辑斯谛回归 211

    6.4 支持向量机 214

    6.5 主成分分析 216

    6.6  k-均值聚类 220

    6.7 总结 223

    第7章 生物信息学、遗传学和网络模型 224

    7.1 有向图和多重图 225

    7.1.1 存储图表数据 225

    7.1.2 图表展示 227

    7.2 图的聚集系数 235

    7.3 社交网络分析 238

    7.4 平面图测试 240

    7.5 有向无环图测试 242

    7.6 最大流量和最小切割 244

    7.7 遗传编程示例 245

    7.8 随机区组模型 247

    7.9 总结 250

    第8章 高级可视化 252

    8.1 计算机模拟 253

    8.1.1 Python的random包 253

    8.1.2 SciPy的random函数 254

    8.1.3 模拟示例 255

    8.1.4 信号处理 258

    8.1.5 动画制作 261

    8.1.6 利用HTML5进行可视化 263

    8.1.7 Julia和Python有什么区别 267

    8.1.8 用D3.js进行可视化 267

    8.1.9 仪表盘 268

    8.2 总结 269

    附录 继续探索可视化 270[2]

    词条图册

    更多图册

    参考资料

    1.

    Python数据可视化

    .当当网[引用日期2020-03-30]

    2.

    基本信息

    .。[引用日期2017-04-07]

    展开全文
  • 安装matplotlib# Macpip install --user matplotlib在Python环境下,使用import matplotlib检测是否安装成功,不报错就是安装成功绘制简单图形import matplotlib.pyplot as plt#图形输入值input_values = [1,2,3,4,5...

    安装matplotlib

    # Mac

    pip install --user matplotlib

    在Python环境下,使用import matplotlib检测是否安装成功,不报错就是安装成功

    绘制简单图形

    import matplotlib.pyplot as plt

    #图形输入值

    input_values = [1,2,3,4,5]

    #图形输出值

    squares = [1,4,9,16,25]

    #plot根据列表绘制出有意义的图形,linewidth是图形线宽,可省略

    plt.plot(input_values,squares,linewidth=5)

    #设置图标标题

    plt.title("Square Numbers",fontsize = 24)

    #设置坐标轴标签

    plt.xlabel("Value",fontsize = 14)

    plt.ylabel("Square of Value",fontsize = 14)

    #设置刻度标记的大小

    plt.tick_params(axis='both',labelsize = 14)

    #打开matplotlib查看器,并显示绘制图形

    plt.show()

    image

    3.绘制点

    import matplotlib.pyplot as plt

    #绘制散点图(传如一对x和y坐标,在指定位置绘制一个点)

    plt.scatter(2,4)

    #设置输出样式

    plt.scatter(3,5,s=200)

    plt.show()

    image

    4.绘制一系列的点

    import matplotlib.pyplot as plt

    x_values = [1,2,3,4,5]

    y_values = [1,4,9,16,25]

    plt.scatter(x_values,y_values,s=100)

    plt.show()

    image

    自动计算数据

    import matplotlib.pyplot as plt

    x_values = list(range(1,1001))

    y_values = [x**2 for x in x_values]

    plt.scatter(x_values,y_values,s=100)

    #设置每个坐标轴的取值范围(x轴取值,y轴取值)

    plt.axis([0,1100,0,1100000])

    plt.show()

    image

    删除数据点的轮廓

    import matplotlib.pyplot as plt

    x_values = list(range(1,1001))

    y_values = [x**2 for x in x_values]

    #matplotlib允许你给散点图中的各个点指定颜色。默认为蓝色点和黑色轮廓,在散点图包含的 数据点不多时效果很好。但绘制很多点时,黑色轮廓可能会粘连在一起。

    #edgecolor='none'删除数据点的轮廓

    plt.scatter(x_values,y_values,edgecolor='none', s=40)

    #设置每个坐标轴的取值范围

    plt.axis([0,1100,0,1100000])

    plt.show()

    image

    自定义颜色c=''直接传颜色或元组都可以

    import matplotlib.pyplot as plt

    x_values = list(range(1,1001))

    y_values = [x**2 for x in x_values]

    #matplotlib允许你给散点图中的各个点指定颜色。默认为蓝色点和黑色轮廓,在散点图包含的 数据点不多时效果很好。但绘制很多点时,黑色轮廓可能会粘连在一起。

    #edgecolor='none'删除数据点的轮廓

    plt.scatter(x_values, y_values,c='red', edgecolor='none', s=40)

    # plt.scatter(x_values, y_values, c=(0, 0, 0.8), edgecolor='none', s=40)

    #设置每个坐标轴的取值范围

    plt.axis([0,1100,0,1100000])

    plt.show()

    image

    使用颜色映射

    import matplotlib.pyplot as plt

    x_values = list(range(1,1001))

    y_values = [x**2 for x in x_values]

    #matplotlib允许你给散点图中的各个点指定颜色。默认为蓝色点和黑色轮廓,在散点图包含的 数据点不多时效果很好。但绘制很多点时,黑色轮廓可能会粘连在一起。

    #edgecolor='none'删除数据点的轮廓

    plt.scatter(x_values, y_values,c=y_values,cmap=plt.cm.Blues, edgecolor='none', s=40)

    #设置每个坐标轴的取值范围

    plt.axis([0,1100,0,1100000])

    plt.show()

    将c设置成一个y值列表,并使用参数cmap告诉pyplot使用那个颜色映射,这些代码将y值较小的点显示为浅蓝色,将y值较大的点显示为深蓝色

    image

    自动保存图表

    import matplotlib.pyplot as plt

    x_values = list(range(1,1001))

    y_values = [x**2 for x in x_values]

    #matplotlib允许你给散点图中的各个点指定颜色。默认为蓝色点和黑色轮廓,在散点图包含的 数据点不多时效果很好。但绘制很多点时,黑色轮廓可能会粘连在一起。

    #edgecolor='none'删除数据点的轮廓

    plt.scatter(x_values, y_values,c=y_values,cmap=plt.cm.Blues, edgecolor='none', s=40)

    #设置每个坐标轴的取值范围

    plt.axis([0,1100,0,1100000])

    # plt.show()

    #参数1指定要以什么样的文件名保存图表,保存和代码的同目录下,第二个参数表示要将多余的空白区域剪掉,要保留空白区域,可省略第二个参数

    plt.savefig('squares_plot.png',bbox_inches='tight')

    image

    练习题

    动手试一试

    15-1 立方:数字的三次方被称为其立方。请绘制一个图形,显示前 5 个整数的立方 值,再绘制一个图形,显示前 5000 个整数的立方值。

    15-2 彩色立方:给你前面绘制的立方图指定颜色映射。

    import matplotlib.pyplot as plt

    # #图形输入值

    # input_values = [1,2,3,4,5]

    # #图形输出值

    # square = [1,8,27,64,125]

    # plt.scatter(input_values,square,linewidth = 5)

    # plt.title("cube",fontsize = 24)

    # plt.show()

    input_values = list(range(0,5000))

    square = [x**3 for x in input_values]

    plt.scatter(input_values,square,c=input_values,cmap=plt.cm.Reds,edgecolor='none',s=40);

    plt.show()

    image

    随机漫步(绘制随机漫步图)

    from random import choice

    class RandomWalk(object):

    """一个生成随机漫步数据的类"""

    def __init__(self, num_points = 5000):

    """初始化随机漫步的属性"""

    #存储随机漫步次数的变量

    self.num_points = num_points

    #所有随机漫步都始于(0,0)

    #分别存储随机漫步经过的每个点的x和y坐标

    self.x_values = [0]

    self.y_values = [0]

    def fill_walk(self):

    """计算随机漫步包含的所有点"""

    #不断漫步,直到列表达到指定的长度

    while len(self.x_values) < self.num_points:

    #决定前进方向以及沿这个方向前进的距离

    x_direction = choice([1,-1])

    x_distance = choice([0,1,2,3,4])

    x_step = x_direction * x_distance

    y_direction = choice([1,-1])

    y_distance = choice([0,1,2,3,4])

    y_step = y_direction * y_distance

    #拒绝原地踏步

    if x_step == 0 and y_step == 0:

    continue

    #计算下一个点的x值和y值

    next_x = self.x_values[-1] + x_step

    next_y = self.y_values[-1] +y_step

    self.x_values.append(next_x)

    self.y_values.append(next_y)

    pass

    绘制随机漫步图

    import matplotlib.pyplot as plt

    from random_walk import RandomWalk

    #创建一个RandomWalk实例,并将其包含的点都绘制出来

    rw = RandomWalk()

    rw.fill_walk()

    plt.scatter(rw.x_values,rw.y_values,s=15)

    plt.show()

    image

    模拟多次随机漫步

    import matplotlib.pyplot as plt

    from random_walk import RandomWalk

    #只要程序处于活动状态,就不断的模拟漫步

    while True:

    #创建一个RandomWalk实例,并将其包含的点都绘制出来

    rw = RandomWalk()

    rw.fill_walk()

    plt.scatter(rw.x_values,rw.y_values,s=15)

    plt.show()

    keep_running = input("Make another walk?(y/n)")

    if keep_running=='n':

    break

    给点着色

    import matplotlib.pyplot as plt

    from random_walk import RandomWalk

    #只要程序处于活动状态,就不断的模拟漫步

    while True:

    #创建一个RandomWalk实例,并将其包含的点都绘制出来

    rw = RandomWalk()

    rw.fill_walk()

    point_numbers = list(range(rw.num_points))

    plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,edgecolor='none',s=15)

    plt.show()

    keep_running = input("Make another walk?(y/n)")

    if keep_running=='n':

    break

    image

    重新绘制起点和终点

    import matplotlib.pyplot as plt

    from random_walk import RandomWalk

    #只要程序处于活动状态,就不断的模拟漫步

    while True:

    #创建一个RandomWalk实例,并将其包含的点都绘制出来

    rw = RandomWalk()

    rw.fill_walk()

    point_numbers = list(range(rw.num_points))

    plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,edgecolors='none',s=15)

    #突出起点和终点

    plt.scatter(0,0,c='green',edgecolor='none',s=100)

    plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',edgecolors='none',s=100)

    plt.show()

    keep_running = input("Make another walk?(y/n)")

    if keep_running=='n':

    break

    image

    隐藏坐标轴

    while True:

    #创建一个RandomWalk实例,并将其包含的点都绘制出来

    rw = RandomWalk()

    rw.fill_walk()

    point_numbers = list(range(rw.num_points))

    plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,edgecolors='none',s=15)

    #突出起点和终点

    plt.scatter(0,0,c='green',edgecolor='none',s=100)

    plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',edgecolors='none',s=100)

    #隐藏坐标轴

    plt.axes().get_xaxis().set_visible(False)

    plt.axes().get_yaxis().set_visible(False)

    plt.show()

    keep_running = input("Make another walk?(y/n)")

    if keep_running=='n':

    break

    image

    增加点数(增加点数,将每个点的大小调小)

    while True:

    #创建一个RandomWalk实例,并将其包含的点都绘制出来

    rw = RandomWalk(50000)

    rw.fill_walk()

    point_numbers = list(range(rw.num_points))

    plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,edgecolors='none',s=1)

    #突出起点和终点

    plt.scatter(0,0,c='green',edgecolor='none',s=100)

    plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',edgecolors='none',s=100)

    #隐藏坐标轴

    plt.axes().get_xaxis().set_visible(False)

    plt.axes().get_yaxis().set_visible(False)

    plt.show()

    keep_running = input("Make another walk?(y/n)")

    if keep_running=='n':

    break

    image

    16.调整尺寸以适应屏幕

    while True:

    #创建一个RandomWalk实例,并将其包含的点都绘制出来

    rw = RandomWalk(50000)

    rw.fill_walk()

    #设置绘图窗口的尺寸

    #figure()用于指定图表的宽度,高度,分辨率黑背景色figsize需要指定一个元组,单位英寸,dpi是分辨率,可传可不传

    plt.figure(dpi=128,figsize=(10,6))

    point_numbers = list(range(rw.num_points))

    plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,edgecolors='none',s=1)

    #突出起点和终点

    plt.scatter(0,0,c='green',edgecolor='none',s=100)

    plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',edgecolors='none',s=100)

    #隐藏坐标轴

    plt.axes().get_xaxis().set_visible(False)

    plt.axes().get_yaxis().set_visible(False)

    plt.show()

    keep_running = input("Make another walk?(y/n)")

    if keep_running=='n':

    break

    练习1

    分子运动:修改 rw_visual.py,将其中的 plt.scatter()替换为 plt.plot()。为 模拟花粉在水滴表面的运动路径,向 plt.plot()传递 rw.x_values 和 rw.y_values,并 指定实参值 linewidth。使用 5000 个点而不是 50 000 个点。

    while True:

    #创建一个RandomWalk实例,并将其包含的点都绘制出来

    rw = RandomWalk(5000)

    rw.fill_walk()

    #设置绘图窗口的尺寸

    #figure()用于指定图表的宽度,高度,分辨率黑背景色figsize需要指定一个元组,单位英寸,dpi是分辨率,可传可不传

    plt.figure(dpi=128,figsize=(10,6))

    point_numbers = list(range(rw.num_points))

    plt.plot(rw.x_values,rw.y_values,linewidth=1)

    # plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,edgecolors='none',s=1)

    #突出起点和终点

    # plt.scatter(0,0,c='green',edgecolor='none',s=100)

    # plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',edgecolors='none',s=100)

    #隐藏坐标轴

    plt.axes().get_xaxis().set_visible(False)

    plt.axes().get_yaxis().set_visible(False)

    plt.show()

    keep_running = input("Make another walk?(y/n)")

    if keep_running=='n':

    break

    image

    练习2

    改进的随机漫步:在类 RandomWalk 中,x_step 和 y_step 是根据相同的条件生 8

    成的:从列表[1, -1]中随机地选择方向,并从列表[0, 1, 2, 3, 4]中随机地选择距离。 请修改这些列表中的值,看看对随机漫步路径有何影响。尝试使用更长的距离选择列表, 如 0~8;或者将1 从 x 或 y 方向列表中删除。

    def fill_walk(self):

    """计算随机漫步包含的所有点"""

    #不断漫步,直到列表达到指定的长度

    while len(self.x_values) < self.num_points:

    #决定前进方向以及沿这个方向前进的距离

    x_direction = choice([1])

    x_distance = choice([0,1,2,3,4,5,6,7,8])

    x_step = x_direction * x_distance

    y_direction = choice([1])

    y_distance = choice([0,1,2,3,4,5,6,7,8])

    y_step = y_direction * y_distance

    #拒绝原地踏步

    if x_step == 0 and y_step == 0:

    continue

    #计算下一个点的x值和y值

    next_x = self.x_values[-1] + x_step

    next_y = self.y_values[-1] +y_step

    self.x_values.append(next_x)

    self.y_values.append(next_y)

    pass

    image

    展开全文
  • Python可视化入门

    2021-04-26 19:38:52
    然后是看可视化工具,Python可视化只是其中之一 本文是基于《Python数据可视化编程实战》内容总结的 主要是关于Python可视化入门的基础内容,更多是以例子和程序来总结 S1 环境设置 需要安装库:matplotlib、Numpy...

    可视化路漫漫,一步一个脚印往前走!

    在这里插入图片描述

    S0 写在前面

    最近一直在可视化的道路上不断前行,看书+码代码
    一开始是看浙大陈为他们写的《数据可视化》,了解可视化的一些基本知识
    然后是看可视化工具,Python可视化只是其中之一
    本文是基于《Python数据可视化编程实战》内容总结的
    主要是关于Python可视化入门的基础内容,更多是以例子和程序来总结

    S1 环境设置

    需要安装库:matplotlib、Numpy、Scipy、PIL、Requests
    可使用预打包环境:EPD、Anaconda、Python(x,y)

    import matplotlib.pyplot as plt  
    import numpy as np  
    t = np.arange(0.0, 1.0, 0.01)  
    s = np.sin(2 * np.pi * t)  
    #设置线宽、线性和颜色   
    plt.plot(t,s,color = 'r',marker = "+",linewidth=1)    
    c = np.cos(2 * np.pi * t)  
    plt.rcParams['lines.linewidth'] = 3  
    #plt.rcdefaults()  -- set defaults  
    plt.plot(t,c)  
    plt.show() 
    

    在这里插入图片描述

    S2 读取CSV文件

    常规做法:

    import csv
    with open(filename,'r',encoding = 'utf-8') as f:  
        reader = csv.reader(f)  
        header = reader.__next__()#python 3.x要用__next__()  
        data = [row for row in reader]  
    

    数据量大:

    data = numpy.loadtxt('ch02-data.csv',dtype='|S',delimiter=',')  
    for datarow in data:  
        print(datarow)  
    

    S3 读取Excel文件

    import xlrd  
    filename = 'ch02-data.xlsx'  
    wb = xlrd.open_workbook(filename = filename)  
    ws = wb.sheet_by_name('Sheet1')  
    dataset = []  
    for r in range(ws.nrows):  
        col = []  
        for c in range(ws.ncols):  
            col.append(ws.cell(r,c).value)  
        dataset.append(col)  
    1from pprint import pprint  
    1pprint(dataset)  
    

    S4 时间序列绘制

    from pylab import *  
    import matplotlib as matplotlib  
    import datetime  
    fig = figure()  
    ax = gca()  # get current axis  
    start = datetime.datetime(2013, 1, 1)  # set some daterange  
    stop = datetime.datetime(2013, 12, 31)  
    delta = datetime.timedelta(days = 1)   
    dates = mpl.dates.drange(start, stop, delta)  # convert dates for matplotlib 
    values = np.random.rand(len(dates))  # generate some random values  
    ax = gca()    
    ax.plot_date(dates, values, linestyle = '-', marker='')  # create plot with dates  
    date_format = mpl.dates.DateFormatter('%Y-%m-%d')  #specify formater   
    ax.xaxis.set_major_formatter(date_format)  # apply formater 
    # autoformat data labels  
    # rotates labels by 30 degrees by default  
    # use rotate param to specify different rotation degree  
    # use bottom param to give more room to date labels  
    fig.autofmt_xdate()  
    show()
    

    在这里插入图片描述

    S5 常规图表、多图排列绘制

    from matplotlib.pyplot import *  
    x = [1,2,3,4]  # some simple data  
    y = [5,4,3,2]  
    figure()  # create new figure  
    subplot(321)  # divide subplots into 3×2 grid and select #1  
    plot(x, y)  
    subplot(322)  #select #2  
    bar(x, y) 
    subplot(323)   # horizontal bar-charts  
    barh(x, y)  
    subplot(324)  
    bar(x, y)  # create stacked bar bar-charts 
    y1 = [7,8,5,3]  
    bar(x, y1, bottom = y, color = 'r')   # stacked bar bar-charts  
    subplot(325)  
    boxplot(x)  # box plot  
    subplot(326)  
    scatter(x, y)  # scatter plot  
    show()  
    

    在这里插入图片描述

    S6 热力图绘制

    import numpy as np  
    import matplotlib.pyplot as plt  
    from mpl_toolkits.axes_grid1 import ImageGrid  
    from matplotlib.cbook import get_sample_data  
    def get_demo_image():  
        f = get_sample_data("axes_grid/bivariate_normal.npy", asfileobj = False)  
        # z is a numpy array of 15×15  
        Z = np.load(f)  
        return Z, (-3, 4, -4, 3)  
    def get_grid(fig=None, layout=None, nrows_ncols=None):  
        assert fig is not None  
        assert layout is not None  
        assert nrows_ncols is not None  
        grid = ImageGrid(fig, layout, nrows_ncols = nrows_ncols, axes_pad=0.05, add_all=True, label_mode='L')  
        return grid  
    def load_images_to_grid(grid, Z, *images):  
        min, max = Z.min(), Z.max()  
        for i, image in enumerate(images):  
            axes = grid[i]  
            axes.imshow(image, origin = 'lower',vmin = min, vmax = max, interpolation = 'nearest')  
    if __name__ == '__main__':  
        fig = plt.figure(1, (8, 6))  
        grid = get_grid(fig, 111, (1,3))  
        Z, extent = get_demo_image()  
        # Slice image  
        image1 = Z  
        image2 = Z[:, :10]  
        image3 = Z[:, 10:]  
        load_images_to_grid(grid, Z, image1, image2, image3)  
        plt.draw()  
        plt.show()  
    

    在这里插入图片描述

    S7 用PIL做图像处理

    (1)PIL坐标系统原点(0,0)位于左上角;
    (2)im=Image.open(filename):打开一个文件,并把图像加载在im对象上;
    (3)im.crop(box):裁剪左、上、右、下像素内图像,box=(0, 100, 100, 100);
    (4)im.filter(filter):图像滤波;
    (5)im.histogram():图像像素值直方图列表,单通道256个,双通道768个;
    (6)im.resize(size, filter):重新调整图像大小,并且使用滤波器重新采样,滤波器可选NEAREST、BILINEAR、BICUBIC和ANTIALIAS,默认值为NEAREST。
    (7)im.rotate(angle, filter):逆时针方向旋转图像;
    (8)im.split():分离图像波段,可用于分离RGB图像为3个单独波段;
    (9)ImageChops.duplicate(image):拷贝图像;
    (10)ImageChops.invert(image):反转图像;
    (11)ImageChops.difference(image1, image2):验证图像是否相同;

    S8 火柴杆图绘制

    import matplotlib.pyplot as plt  
    import numpy as np  
    # time domain  
    x = np.linspace(0, 20, 50)  
    # random function to simulate sampled signal  
    y = np.sin(x+1)+np.cos(x**2)  
    # here we can setup baseline position  
    bottom = -0.1  
    # True -- hold current axes for further plotting  
    # False -- clear and use new figure/plot  
    hold = False  
    # set label for legend   
    label = "delta"  
    markerline, stemlines, baseline = plt.stem(x,y,bottom=bottom,  
                                          label=label,hold=hold)   
    # we use setp() here to setup  
    # multiple properties of lines generated by stem()  
    plt.setp(markerline, color = 'red', marker = 'o')  
    plt.setp(stemlines, color = 'blue', linestyle = ':')  
    plt.setp(baseline, color = 'grey', linewidth =2, linestyle = '-')  
    # draw a legend  
    plt.legend()  
    plt.show()  
    

    在这里插入图片描述

    S9 结语

    本文主要是关于Python常规作图的总结,主要用到的是matplotlib库
    Python可视化绘图虽然没有达到R语言的那种认可度,但个人认为还是略胜于matlab的
    在之后的学术研究、实践应用,可以考虑选择Python进行绘图

    展开全文
  • 人生苦短,我用python!现在python语言越来越流行,尤其是在...内容简介《python数据可视化之美》主要介绍如何使用python中的matplotlib、seaborn、plotnine、basemap等包绘制专业图表。本书先介绍了python语言编程...
  • Python、练语法、取数据、画图表、可视化、绘地图、重实战……一在手,精通Python数据分析与可视化!本书以“零基础”为起点,系统地介绍了Python在数据处理与可视化分析方面的应用。扫码直达购书链接《Python...
  • 本书主要介绍如何使用Python 中的matplotlib、Seaborn、plotnine、Basemap 等包绘制专业图表。本书首先介绍Python 语言编程的基础知识,以及NumPy 和Pandas 的数据操作方法;再对比介绍matplotlib、Seaborn 和...
  • Python可视化实验

    千次阅读 2018-12-27 15:15:14
    ***Python可视化实验 看一部精彩的经典电影,就像看一本经典的一样。我们可以在中成长,也可以在一部影片中成长,体验生活,感悟人生,增长智慧。我们可以在一部电影中成长,通过一部影片思考生活,感悟人生,...
  • python可视化Task01

    2020-12-14 19:42:36
    python可视化Task01 我学绘图是从R语言起步的,R语言在绘图方面有很成熟的ggplot2包和衍生出的成熟生态,市面上也有很多不错的书籍资料,对ggplot2图层叠加的绘图思想讲解也比较透彻。但后面感觉到R在数据处理方面的...
  • 想像阅读书本一样阅读数据流?这只有在电影中才有可能发生。 在现实世界中,企业必须使用数据可视化工具来读取原始数据的趋势和模式。尽管实际上存在着无数专门用于大数据可视化... 1、灯果可视化 灯果数据可视化BI...
  • 想像阅读书本一样阅读数据流?这只有在电影中才有可能发生。 在现实世界中,企业必须使用数据可视化工具来读取原始数据的趋势和模式。尽管实际上存在着无数专门...1、灯果可视化灯果数据可视化BI软件是新一代人工...
  • (2)专注于Python数据分析与可视化操作中实际用到的技术。相比大而全的书籍资料,本书能让读者尽快上手,开始项目开发。(3)中的"新手问答”和"小试牛刀”栏目能让读者巩固知识,举一反三,学以致用。...
  • 内容简介本书采用理论与案例相结合的形式,...第2~6章介绍了Python数据分析的常用库及其应用,涵盖了科学计算库NumPy、数据分析库Pandas、数据可视化库Matplotlib、Seaborn与Bokeh,较为全面地讲述了Python数据分析...
  • 5.4 卷积神经网络的可视化人们常说,深度学习模型是“黑盒”,即模型学到的表示很难用人类可以理解的方式来提取和呈现。虽然对于某些类型的深度学习模型来说,这种说法部分正确,但对卷积神经网络来说绝对不是这样...
  • 现在开始,根据《python编程从入门到实践》这本书上的目开始练习Python。做以下笔记:一. 采用whl形式安装matplotlib(未成功)1. 下载whl安装包wget ...
  • Python有许多的扩展库可以进行静态或者动态的可视化,但是在这一章里,的作者只focus on在matplotlib以及建立在之上的库。 matplotlib是一个桌面绘图包,用于绘制(主要是二维的)发表用的图。该项目由John Hunter...
  • 现在才明白,学习Python可视化,就是掌握几个专用画图包的过程。目前Python最重要的画图包包括matplotlib、seaborn、pyecharts和turtle。其中前面三个面向数据可视化开发,是重点学习的对象。而turtle的画图功能...
  • image.png内容简介《Python数据可视化编程实战》是一本使用Python实现数据可视化编程的实战指南,介绍了如何使用Python最流行的库,通过60余种方法创建美观的数据可视化效果。全书共8章,分别介绍了准备工作环境、...
  • 作者:小F来源:法纳斯特本次内容有感于《Python编程快速上手-让繁琐工作自动》。根据中的「处理Excel电子表格」章节内容,做出一份专属日历。使用的模块为openpyxl,一个能读取和修改Excel电子表格的Pyhton模块...
  • 介绍python可视化的书籍
  • 新书推荐《Python数据可视化:基于Bokeh的可视化绘图》长按二维码了解及购买从图形绘制、数据动态展示、Web交互等维度全面讲解Bokeh功能和使用;资深Bokeh布道者撰写,不含复...
  • Python有许多的扩展库可以进行静态或者动态的可视化,但是在这一章里,的作者只focus on在matplotlib以及建立在之上的库。matplotlib是一个桌面绘图包,用于绘制(主要是二维的)发表用的图。该项...
  • 它几乎可以做任何事,从简单的脚本创建、web,到数据可视化以及AI人工智能,使热衷python的人群变得越来越多。接下来推荐3本学python一定要看的书籍,有了他们,至少能节省50%的时间少走一半的弯路!零基础学python...
  • Python数据可视化编程实战是一本使用Python实现数据...《Python数据可视化编程实战》适合那些对Python编程有一定基础的开发人员,可以帮助读者从头开始了解数据、数据格式、数据可视化,并学会使用Python可视化数据。
  • 《Python数据可视化编程实战》适合那些对Python编程有一定基础的开发人员,可以帮助读者从头开始了解数据、数据格式、数据可视化,并学会使用Python可视化数据。 Python数据可视化编程实战目录 第1章 准备工作环境 ...
  • 70种方法,轻松入门Python可视化编程

    千次阅读 2018-09-03 15:11:54
    毋庸多言,在Python的世界里,matplotlib是最著名的绘图库,它支持几乎所有的2D绘图和部分3D绘图,被广泛地应用在科学计算和数据可视化领域。但是介绍matplotlib的中文书籍很少,大部分书籍只是在部分章节中提到了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,472
精华内容 588
关键字:

python可视化书

python 订阅