栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

7.3 pgfplots点集

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

7.3 pgfplots点集

文章目录
  • 2D-坐标点集
  • 2D-外部文件
  • 3D-坐标点集
  • 3D-外部文件

  有时候,函数可能是离散的,比如定义域是整数的函数,那么这种如何绘制函数图形呢?这个时候需要数据集。因为离散函数是一个个孤立的点,所以很容易变成折线图、柱状图等等。这个部分内容在我写的 数据分析博文中讲过了。

2D-坐标点集

  现在我们要画孤立的点,有两种方式,一种是直接在文件中定义,另一种是读取外部数据集。先看看文件里定义的方式:

documentclass[utf8,a4paper]{article}
usepackage{ctex,tikz,pgfplots}
begin{document}
	begin{tikzpicture}
	begin{axis}[]
		addplot [only marks] coordinates{
			(1,2) (2,3) (3,4) (4,5) (5,6)
			(6,7) (7,8) (8,9) (9,10) (10,11)
		};
	end{axis}
	end{tikzpicture}

end{document}

  其实这就是一句only marks的事。编译效果如下:

2D-外部文件

  现在试试外部文件的写法。先准备文件吧,一个简单的data文件:

x x*x-x+1
1 1
2 3
3 7
4 13
5 21
6 31
7 43
8 57
9 73

  然后在LaTex中引入这个文件:

documentclass[utf8,a4paper]{article}
usepackage{ctex,tikz,pgfplots}
begin{document}
	begin{tikzpicture}
		begin{axis}[]
			addplot [only marks] table[x=x,y=x*x-x+1] {./2d.data};
		end{axis}
	end{tikzpicture}
	
end{document}

  编译效果:

3D-坐标点集

  接下来的内容就很水了,因为无非就是2D的内容的重复。这些数据哈哈,都是我用python硬造的,比如下列3D数据集:

documentclass[utf8,a4paper]{article}
usepackage{ctex,tikz,pgfplots}
begin{document}
	begin{tikzpicture}
		begin{axis}[]
			addplot3 [only marks] coordinates{
				(0.0,0.0,2.0)
				(0.20791169081775931,0.021852399266194363,1.9781476007338055)
				(0.40673664307580026,0.0864545423573991,1.9135454576426012)
				(0.587785252292473,0.19098300562505255,1.8090169943749472)
				(0.7431448254773942,0.33086939364114176,1.669130606358858)
				(0.8660254037844386,0.4999999999999999,1.5000000000000002)
				(0.9510565162951536,0.6909830056250525,1.3090169943749475)
				(0.9945218953682734,0.8954715367323466,1.1045284632676535)
				(0.9945218953682734,1.1045284632676535,0.8954715367323466)
				(0.9510565162951536,1.3090169943749475,0.6909830056250525)
				(0.8660254037844388,1.4999999999999998,0.5000000000000002)
				(0.7431448254773942,1.669130606358858,0.33086939364114176)
				(0.5877852522924731,1.8090169943749472,0.1909830056250526)
				(0.40673664307580043,1.9135454576426008,0.0864545423573992)
				(0.2079116908177593,1.9781476007338055,0.021852399266194356)
				(1.2246467991473532e-16,2.0,7.498798913309288e-33)
				(-0.20791169081775948,1.9781476007338055,0.021852399266194398)
				(-0.40673664307580026,1.9135454576426012,0.0864545423573991)
				(-0.587785252292473,1.8090169943749477,0.19098300562505247)
				(-0.7431448254773944,1.669130606358858,0.3308693936411419)
				(-0.8660254037844384,1.5000000000000002,0.49999999999999956)
				(-0.9510565162951534,1.3090169943749475,0.6909830056250523)
				(-0.9945218953682734,1.1045284632676535,0.8954715367323466)
				(-0.9945218953682734,0.8954715367323469,1.104528463267653)
				(-0.9510565162951536,0.6909830056250529,1.3090169943749472)
				(-0.8660254037844386,0.4999999999999999,1.5000000000000002)
				(-0.7431448254773946,0.33086939364114215,1.6691306063588578)
				(-0.5877852522924732,0.1909830056250527,1.8090169943749472)
				(-0.4067366430758002,0.08645454235739909,1.9135454576426012)
				(-0.20791169081775984,0.02185239926619447,1.9781476007338055)
				(-2.4492935982947064e-16,2.999519565323715e-32,2.0)
				(0.20791169081775937,0.021852399266194374,1.9781476007338055)
				(0.40673664307580054,0.08645454235739924,1.9135454576426008)
				(0.5877852522924729,0.1909830056250524,1.8090169943749477)
				(0.7431448254773942,0.33086939364114176,1.669130606358858)
				(0.8660254037844388,0.5000000000000002,1.4999999999999998)
				(0.9510565162951534,0.6909830056250523,1.3090169943749475)
				(0.9945218953682734,0.8954715367323466,1.1045284632676535)
				(0.9945218953682734,1.1045284632676537,0.8954715367323463)
				(0.9510565162951536,1.3090169943749472,0.6909830056250529)
				(0.8660254037844393,1.4999999999999993,0.5000000000000009)
				(0.7431448254773941,1.6691306063588585,0.3308693936411416)
				(0.5877852522924734,1.8090169943749472,0.19098300562505274)
				(0.40673664307580104,1.9135454576426008,0.08645454235739948)
				(0.20791169081775912,1.978147600733806,0.021852399266194315)
				(3.6739403974420594e-16,2.0,6.748919021978358e-32)
				(-0.20791169081775837,1.978147600733806,0.02185239926619416)
				(-0.4067366430758004,1.9135454576426008,0.08645454235739918)
				(-0.5877852522924728,1.8090169943749477,0.19098300562505233)
				(-0.7431448254773936,1.669130606358859,0.33086939364114104)
				(-0.8660254037844388,1.4999999999999998,0.5000000000000002)
				(-0.9510565162951534,1.309016994374948,0.6909830056250521)
				(-0.9945218953682732,1.1045284632676544,0.8954715367323454)
				(-0.9945218953682732,0.8954715367323463,1.1045284632676535)
				(-0.9510565162951539,0.6909830056250531,1.3090169943749472)
				(-0.8660254037844392,0.5000000000000009,1.4999999999999991)
				(-0.7431448254773942,0.3308693936411417,1.6691306063588585)
				(-0.5877852522924736,0.19098300562505288,1.8090169943749472)
				(-0.4067366430758012,0.08645454235739955,1.9135454576426008)
				(-0.2079116908177592,0.02185239926619434,1.9781476007338055)
				(-4.898587196589413e-16,1.199807826129486e-31,2.0)
				
			
		};
		end{axis}
	end{tikzpicture}
	
end{document}

  渲染效果:

  我python造数据的源码也贴出来吧:

from math import sin, cos
import math

if __name__ == '__main__':
    for t in range(0, 366, 6):
        u = math.radians(t)
        x = 2 * sin(u) * cos(u)
        y = 2 * sin(u) * sin(u)
        z = 2 * cos(u) * cos(u)
        print(f'({x},{y},{z})', end='n')
        if t % 5 == 0:
            print()

3D-外部文件

  我贴出来一组螺旋线的数据,写入3d.data文件中,如下:

x y z
0.1 0.09983341664682815 0.9950041652780258
0.3 0.29552020666133955 0.955336489125606
0.5 0.479425538604203 0.8775825618903728
0.7 0.644217687237691 0.7648421872844885
0.9 0.7833269096274834 0.6216099682706644
1.1 0.8912073600614354 0.4535961214255773
1.3 0.963558185417193 0.26749882862458735
1.5 0.9974949866040544 0.0707372016677029
1.7 0.9916648104524686 -0.12884449429552464
1.9 0.9463000876874145 -0.32328956686350335
2.1 0.8632093666488737 -0.5048461045998576
2.3 0.7457052121767203 -0.666276021279824
2.5 0.5984721441039564 -0.8011436155469337
2.7 0.4273798802338298 -0.9040721420170612
2.9 0.23924932921398243 -0.9709581651495905
3.1 0.04158066243329049 -0.9991351502732795
3.3 -0.1577456941432482 -0.9874797699088649
3.5 -0.35078322768961984 -0.9364566872907963
3.7 -0.5298361409084934 -0.848100031710408
3.9 -0.6877661591839738 -0.7259323042001402
4.1 -0.8182771110644103 -0.5748239465332692
4.3 -0.9161659367494549 -0.40079917207997545
4.5 -0.977530117665097 -0.2107957994307797
4.7 -0.9999232575641008 -0.01238866346289056
4.9 -0.9824526126243325 0.18651236942257576
5.1 -0.9258146823277325 0.37797774271298024
5.3 -0.8322674422239013 0.5543743361791608
5.5 -0.7055403255703919 0.70866977429126
5.7 -0.5506855425976376 0.8347127848391598
5.9 -0.373876664830236 0.9274784307440359
6.1 -0.18216250427209588 0.9832684384425845
6.3 0.016813900484349713 0.9998586363834151
6.5 0.21511998808781552 0.9765876257280235
6.7 0.4048499206165983 0.9143831482353194
6.9 0.5784397643882001 0.8157251001253568
7.1 0.7289690401258759 0.6845466664428066
7.3 0.8504366206285644 0.5260775173811053
7.5 0.9379999767747389 0.3466353178350258
7.7 0.9881682338770004 0.15337386203786435
7.9 0.998941341839772 -0.04600212563953695
8.1 0.9698898108450863 -0.2435441537357911
8.3 0.9021718337562933 -0.43137684497062084
8.5 0.7984871126234903 -0.6020119026848236
8.7 0.6629692300821833 -0.7486466455973987
8.9 0.5010208564578846 -0.8654352092411123
9.1 0.3190983623493521 -0.9477216021311119
9.3 0.1244544235070617 -0.9922253254526034
9.5 -0.0751511204618093 -0.9971721561963784
9.7 -0.27176062641094245 -0.9623648798313102
9.9 -0.45753589377532133 -0.8891911526253609
10.1 -0.6250706488928821 -0.7805681801691837
···
  使用LaTex渲染,代码很简单:
```lua
documentclass[utf8,a4paper]{article}
usepackage{ctex,tikz,pgfplots}
begin{document}
	begin{tikzpicture}
		begin{axis}[]
			addplot3 [only marks] table[x=x,y=y,z=z] {./3d.data};
		end{axis}
	end{tikzpicture}
	
end{document}

  编译效果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1025242.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号