• python科研作图


    1、气泡图

    气泡图是一种在xy轴上显示三个维度的数据的有效方式。在气泡图中,基本上,每个气泡代表一个数据点。横坐标和纵坐标的位置代表两个维度,气泡的大小则代表第三个维度。

    在这个例子中,我们用numpy库生成了一些随机数据,然后用matplotlib库的scatter函数创建了一个气泡图。在scatter函数中,参数x, y分别代表数据点的x和y坐标,参数s代表数据点(即气泡)的大小。

    1. import matplotlib.pyplot as plt
    2. import numpy as np
    3. # 随机生成数据
    4. np.random.seed(0)
    5. x = np.random.rand(25)
    6. y = np.random.rand(25)
    7. z = np.random.rand(25) * 1000 # 这将决定气泡的大小
    8. # 创建气泡图
    9. plt.scatter(x, y, s=z)
    10. # 添加图形的标题和x,y轴的标签
    11. plt.title('bubble')
    12. plt.xlabel('X')
    13. plt.ylabel('Y')
    14. # 显示图形
    15. plt.show()

    2、影响图

    影响图(Influence Diagram)是一种用于展示变量之间因果关系的图形化工具。在Python中,可以使用NetworkX和Matplotlib等库来绘制影响图。

    1. import matplotlib.pyplot as plt
    2. import networkx as nx
    3. # 创建一个有向图
    4. G = nx.DiGraph()
    5. # 添加节点
    6. G.add_node("X")
    7. G.add_node("Y")
    8. G.add_node("Z")
    9. # 添加边
    10. G.add_edge("X", "Y")
    11. G.add_edge("Y", "Z")
    12. G.add_edge("X", "Z")
    13. # 绘制图形
    14. pos = nx.spring_layout(G)
    15. nx.draw(G, pos, with_labels=True)
    16. plt.show()

    3、条形图

    条形图(Bar chart)是一种以条形为主要表现形式的图形化数据可视化工具。它通过将数据值转换为条形的长度或高度来展示数据,以便直观地比较和解读不同类别的数据。条形图常用于展示两个或多个类别的数据集之间的相对大小、频次或百分比等。

    条形图的基本构成包括横轴和纵轴。横轴通常代表分类或类别,纵轴则代表数值或定量数据。根据数据的类型和可视化需求,可以选择使用垂直条形图或水平条形图。在垂直条形图中,条形的长度与数据值成正比;而在水平条形图中,条形的宽度与数据值成正比。

    条形图具有多种变体和表现形式,例如单轴条形图、双轴条形图、分组条形图、堆叠条形图等。通过不同的颜色、标记、标签和其他可视化元素可以增加条形图的易读性和清晰度。条形图广泛应用于数据可视化、商业报告、统计分析和决策支持等领域。

    1. import matplotlib.pyplot as plt
    2. # 数据
    3. categories = ['Category1', 'Category2', 'Category3', 'Category4', 'Category5']
    4. values = [5, 8, 3, 6, 4]
    5. # 创建条形图
    6. plt.bar(categories, values)
    7. # 添加标题和轴标签
    8. plt.title('Simple Bar Chart')
    9. plt.xlabel('Categories')
    10. plt.ylabel('Values')
    11. # 显示图表
    12. plt.show()

    4、箱线图

    箱线图(Box Plot)是一种用于展示一组数据分散情况资料的统计图。包含一组数据的最大值、最小值、中位数、及上下四分位数。因此,箱线图可以提供关于数据分布的有用信息。

    以下是一些箱线图的基本构成:

    箱体:包含了所有数据的整体范围,也被称为“箱”。

    中位数:标示出数据的“中点”。在箱线图中,中位数通常会有一条线直接连到箱体,且与箱体的中心对齐。

    四分位数:标示出数据的“四分位数”,也就是将数据分为四个等份的四条线。在箱线图中,四分位数通常以“+”符号表示,且与箱体的上下边缘对齐。

    须”的长度:箱线图中的“须”是两个方向向外延伸的线段,从四分位数的位置向两侧延伸。须的长度不会超过箱体的长度。

    “异常值”:如果数据集中存在极端的或异常的数据点,它们会被单独标示出来,通常会以小圆圈或者是其他特殊的标记来表示。

    通过观察箱线图,你可以快速了解这组数据的集中趋势、离散程度以及异常值。

    1. import matplotlib.pyplot as plt
    2. import numpy as np
    3. # 创建数据
    4. np.random.seed(10)
    5. data = np.random.normal(100, 20, 100)
    6. # 绘制箱线图
    7. plt.boxplot(data)
    8. # 设置图表标题和轴标签
    9. plt.title('Box Plot')
    10. plt.xlabel('Data')
    11. plt.ylabel('Value')
    12. # 显示图表
    13. plt.show()

    1. import seaborn as sns
    2. import matplotlib.pyplot as plt
    3. import numpy as np
    4. # 创建数据
    5. np.random.seed(10)
    6. data = np.random.normal(100, 20, 100)
    7. # 绘制箱线图
    8. sns.boxplot(x=data)
    9. # 设置图表标题和轴标签
    10. plt.title('Box Plot')
    11. plt.xlabel('Data')
    12. plt.ylabel('Value')
    13. # 显示图表
    14. plt.show()

    5、核密度图

    核密度图(Kernel Density Estimate,KDE)是一种用于估计随机变量概率密度函数的非参数方法。在 Python 中,可以使用多种库来绘制核密度图,其中包括 Seaborn、Matplotlib 和 SciPy。

    1. import seaborn as sns
    2. import numpy as np
    3. import matplotlib.pyplot as plt
    4. # 生成示例数据
    5. data = np.random.normal(size=100)
    6. # 使用 Seaborn 绘制核密度图
    7. sns.kdeplot(data, label='KDE')
    8. # 显示图形
    9. plt.legend()
    10. plt.show()

    1. import matplotlib.pyplot as plt
    2. import numpy as np
    3. # 生成示例数据
    4. data = np.random.normal(size=100)
    5. # 使用 Matplotlib 绘制核密度图
    6. plt.hist(data, density=True, alpha=0.5, label='KDE')
    7. # 显示图形
    8. plt.legend()
    9. plt.show()

    1. import numpy as np
    2. import matplotlib.pyplot as plt
    3. from scipy.stats import gaussian_kde
    4. # 生成示例数据
    5. data = np.random.normal(size=100)
    6. # 使用 SciPy 计算核密度估计
    7. kde = gaussian_kde(data)
    8. x_range = np.linspace(min(data) - 1, max(data) + 1, 1000)
    9. kde_values = kde(x_range)
    10. # 使用 Matplotlib 绘制核密度图
    11. plt.plot(x_range, kde_values, label='KDE')
    12. # 显示图形
    13. plt.legend()
    14. plt.show()

    6、小提琴图

    小提琴图(Violin plot)是一种用于显示数据分布情况的图形。它类似于箱线图,但提供了更多的信息,如数据的核密度估计和四分位数。在Python中,可以使用Seaborn库来绘制小提琴图。

    1. import seaborn as sns
    2. import matplotlib.pyplot as plt
    3. import numpy as np
    4. # 生成一些随机数据
    5. rs = np.random.RandomState(0)
    6. n, p = 40, 8
    7. d = rs.normal(0, 2, (n, p))
    8. d += np.log(np.arange(1, p + 1)) * -5 + 10
    9. # 绘制小提琴图
    10. sns.violinplot(data=d)
    11. # 显示图形
    12. plt.show()

    7、热图

    热图是一种可视化工具,用于展示二维数据集中的数据信息,其中颜色表示单元格的值。在热图中,行列的坐标是二维数据的标识符,每个单元格的颜色深浅表示其对应值的大小。通过热图,我们可以快速浏览和比较不同数据集中的数据分布和特征。

    热图有多种类型,包括点热图、条形图热图、气泡热图、颜色映射热图等。其中点热图和条形图热图是最常用的热图类型之一。点热图以点的颜色来表示每个单元格的值,而条形图热图则使用条形的长度和颜色来表示每个单元格的值。

    1. import seaborn as sns
    2. import matplotlib.pyplot as plt
    3. import numpy as np
    4. # 创建一个随机数据集
    5. data = np.random.rand(10, 12)
    6. # 创建一个热图
    7. heatmap = sns.heatmap(data)
    8. # 显示图形
    9. plt.show()

    1. import seaborn as sns
    2. import matplotlib.pyplot as plt
    3. import numpy as np
    4. # 创建一个随机数据集
    5. data = np.random.rand(10, 12)
    6. # 创建一个热图
    7. heatmap = sns.heatmap(data, cmap='coolwarm')
    8. # 显示图形
    9. plt.show()

    8、箭靶图

    箭靶图,也叫做蜘蛛网图或者雷达图,是一种用于显示多变量数据的图形。它由一个中心点向外辐射出多条线段,每条线段代表一个变量,线段的长度代表该变量的数值大小。箭靶图的每个角都代表一个变量,从中心点到每个角的线段表示该变量的数值大小。箭靶图通常用于显示性能数据,如产品的性能指标、公司的财务数据等。在箭靶图中,每个变量的最大值和最小值通常被标出来,以便更好地了解每个变量的数值范围。箭靶图的主要优点是它可以同时显示多个变量的数值大小,并且可以通过线段的长度和角度来表示各个变量之间的关系。

    1. import matplotlib.pyplot as plt
    2. import numpy as np
    3. # 创建一个新的figure
    4. fig, ax = plt.subplots()
    5. # 创建箭靶的外圈
    6. circle1 = plt.Circle((0, 0), 10, fill=False)
    7. circle2 = plt.Circle((0, 0), 20, fill=False)
    8. circle3 = plt.Circle((0, 0), 30, fill=False)
    9. circle4 = plt.Circle((0, 0), 40, fill=False)
    10. circle5 = plt.Circle((0, 0), 50, fill=False)
    11. circle6 = plt.Circle((0, 0), 60, fill=False)
    12. circle7 = plt.Circle((0, 0), 70, fill=False)
    13. circle8 = plt.Circle((0, 0), 80, fill=False)
    14. # 将圆添加到图中
    15. ax.add_artist(circle1)
    16. ax.add_artist(circle2)
    17. ax.add_artist(circle3)
    18. ax.add_artist(circle4)
    19. ax.add_artist(circle5)
    20. ax.add_artist(circle6)
    21. ax.add_artist(circle7)
    22. ax.add_artist(circle8)
    23. # 生成数据点
    24. x = 60*np.random.randn(100)
    25. y = 60*np.random.randn(100)
    26. ax.scatter(x, y, color='r', alpha=0.5)
    27. # 设置x轴和y轴的限制,使得它们的范围都是[-90, 90]
    28. ax.set_xlim([-90, 90])
    29. ax.set_ylim([-90, 90])
    30. # 添加一个标题,设置字体为SimHei解决中文无法显示的问题
    31. plt.title('箭靶图', fontproperties='SimHei')
    32. # 显示图形
    33. plt.show()

    9、折线图

    折线图是一种以线条表示数据信息的图表类型。在折线图中,数据点的相继关系通过线条的起伏和连贯性来表现。折线图通常用于显示时间序列或连续数据的变化情况。

    1. import matplotlib.pyplot as plt
    2. import numpy as np
    3. # 定义数据
    4. x = np.linspace(0, 10, 100) # 在0到10之间均匀取100个点
    5. y = np.sin(x)
    6. # 绘制折线图
    7. plt.figure(figsize=(10, 6)) # 设置图形大小
    8. plt.plot(x, y, label='sin(x)', linewidth=2, linestyle='-', color='blue') # 绘制折线图,并设置线宽、线型和颜色
    9. plt.title('Sine Function') # 设置图形标题
    10. plt.xlabel('x') # 设置x轴标签
    11. plt.ylabel('y') # 设置y轴标签
    12. plt.xticks(np.arange(0, 11, 1)) # 设置x轴刻度
    13. plt.yticks(np.arange(-1, 1 + 0.2, 0.2)) # 设置y轴刻度
    14. plt.grid(True) # 显示网格线
    15. plt.legend() # 显示图例
    16. # 显示图形
    17. plt.show()

    10、饼图

    饼图(Pie Chart)是一种以圆形表示数据信息的图表类型,通过将圆周分割成若干个扇形,每个扇形对应一个数据项或类别,以扇形的面积或长度来表示数据量或占比。

    1. import matplotlib.pyplot as plt
    2. # 定义数据
    3. labels = ['A', 'B', 'C', 'D']
    4. sizes = [15, 30, 45, 10]
    5. # 绘制饼图
    6. plt.figure(figsize=(6, 6)) # 设置图形大小
    7. plt.pie(sizes, labels=labels, autopct='%1.1f%%') # 绘制饼图,并设置标签和百分比格式
    8. # 显示图形
    9. plt.show()

    11、散点图

    散点图(Scatter plot)是一种用于展示两个变量之间关系的图形,它用点的密度和位置来表示数据点的分布情况。在散点图中,每个点代表一个数据点,x轴和y轴分别表示两个变量,通过观察点的位置可以大致了解这两个变量之间的关系。

    散点图的优点是能够直观地反映两个变量之间的关系,并且可以方便地添加其他参考线或数据集来帮助分析和预测。它的缺点是在数据点较多时,图形可能会显得比较杂乱,不易读出准确的关系。

    1. import matplotlib.pyplot as plt
    2. import numpy as np
    3. # 定义数据
    4. x = np.random.randn(100)
    5. y = np.random.randn(100)
    6. # 绘制散点图
    7. plt.figure(figsize=(6, 6)) # 设置图形大小
    8. plt.scatter(x, y) # 绘制散点图
    9. # 显示图形
    10. plt.show()

  • 相关阅读:
    7个设计师必备的Figma汉化插件,高效设计超简单!
    R语言使用names函数为dataframe数据中的所有列重命名
    有什么学习 Web 前端的技巧分享?
    吲哚菁绿ICG标记海藻酸钠|ICG-海藻酸钠|alginate-Indocyaninegreen
    Java NIO的Buffer缓冲区和Channel通道详细总结
    企业数字化转型到底是什么?
    又到中秋节,通过C语言利用SimpleCG制作电子贺卡
    Kubernetes
    数据库实验:SQL的数据视图
    JUnit5单元测试提示“Not tests were found”错误
  • 原文地址:https://blog.csdn.net/T20151470/article/details/132911895