python画图代码-常用备查【散点图+拟合曲线+双轴折线图】

本文主要是介绍python画图代码-常用备查【散点图+拟合曲线+双轴折线图】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

散点图

导入库

下同

import matplotlib.pyplot as plt
import pandas as pd
from io import BytesIO
import base64

准备模拟数据

# Using Chinese characters as column names
columns = ['A', 'B', 'C', 'D','E', 'F', 'G', 'H']
# Since we cannot extract the actual data from the image, we will create scatter plots with mock data.
# Please note that the values used here are randomly generated and do not correspond to any real dataset.# We'll use numpy to generate the random data
import numpy as np# Number of observations
n = 50# Mock data generation
np.random.seed(0)  # For reproducibility
mock_data = {'A': np.random.uniform(1000, 10000, n),'B': np.random.uniform(1, 100, n),'C': np.random.uniform(10, 1000, n),'D': np.random.uniform(50, 500, n),'E': np.random.uniform(10, 200, n),'F': np.random.uniform(5000, 50000, n),'G': np.random.uniform(100, 1000, n),'H': np.random.uniform(5, 100, n),'I': np.random.uniform(0, 100, n)
}# Create a DataFrame from the mock data
df_mock = pd.DataFrame(mock_data)

设置字体

plt.rcParams['font.sans-serif']=['SimHei'] #显示中文

# Create a scatter plot for each x variable against '省域CEI'
plt.style.use('grayscale')  # Use grayscale style
fig, axes = plt.subplots(4, 2, figsize=(15, 20))  # Prepare a grid for the plots
# 如果不想一次性出6个图,改上面的代码
# Flatten the axes array for easy iteration
axs = axes.flatten()# Loop through each x variable and create a scatter plot
for idx, x in enumerate(columns):axs[idx].scatter(df_mock[x], df_mock['I'], edgecolor='black')axs[idx].set_title(f'示例A-{x}', fontsize=20)axs[idx].set_xlabel(x, fontsize=15)axs[idx].set_ylabel('Y', fontsize=15)axs[idx].tick_params(axis='both', which='major', labelsize=12)axs[idx].grid(True)# Adjust layout so titles and labels don't overlap
plt.tight_layout()
plt.show()

在这里插入图片描述

散点图+拟合曲线

# Based on the new requirement, we will add a linear regression fit line to each scatter plot.
# Additionally, we will save the plots to the local filesystem.from sklearn.linear_model import LinearRegression# Create a Linear Regression model
model = LinearRegression()# Function to create scatter plot with regression line
def plot_with_fit_line(x, y, title, xlabel, ylabel):# Fit the modelmodel.fit(x[:, np.newaxis], y)# Get the linear fit linexfit = np.linspace(x.min(), x.max(), 1000)yfit = model.predict(xfit[:, np.newaxis])# Plot the dataplt.scatter(x, y, c='grey', edgecolors='black', label='Data')# Plot the fit lineplt.plot(xfit, yfit, color='black', linewidth=2, label='Fit line')# Title and labels#plt.title(title, fontsize=20)plt.xlabel(xlabel, fontsize=15)plt.ylabel(ylabel, fontsize=15)# Font size for ticksplt.xticks(fontsize=15)plt.yticks(fontsize=15)# Grid and legendplt.grid(False)#plt.legend()# Save the figureplt.savefig(f'C:/Users/12810/Desktop/结果图/{xlabel}_vs_{ylabel}.png')# 取消灰色网格背景# Show the plotplt.show()# Return the path of the saved plotreturn f'C:/Users/12810/Desktop/结果图/{xlabel}_vs_{ylabel}.png'# Paths where plots will be saved
saved_plots = []# Create and save a scatter plot with a fit line for each x variable against '省域CEI'
for col in columns:# Generate the plot and get the path where it's savedplot_path = plot_with_fit_line(df_mock[col].values, df_mock['省域CEI'].values, f"{col}与省域CEI的散点图", col, '省域CEI')# Store the pathsaved_plots.append(plot_path)# Show the paths where the plots are saved
saved_plots

在这里插入图片描述

双坐标轴-折线图

import pandas as pd
import matplotlib.pyplot as pltfrom matplotlib.font_manager import FontPropertiesdf_mock # 读取数据# Set the font properties for displaying Chinese characters
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文
# Use the 'grayscale' style
plt.style.use('grayscale')# Create a new figure and a twin axis
fig, ax1 = plt.subplots()
x_lable=r'AAA'
y_lable = r'BBB'# Plot the first line on the primary y-axis
ax1.plot(df_mock.index, df_mock['A'], color='black', marker='o', label=x_lable)
ax1.set_xlabel('时间(年)')
ax1.set_ylabel(x_lable, color='black')
ax1.tick_params(axis='y', colors='black')# Rotate the x-axis labels
for label in ax1.get_xticklabels():label.set_rotation(45)label.set_fontproperties(font)# Create a second y-axis to plot the second line
ax2 = ax1.twinx()
ax2.plot(df_mock.index, df_mock["B"], color='red', marker='s', label=y_lable)
ax2.set_ylabel(y_lable, color='grey')
ax2.tick_params(axis='y', colors='grey')# Set the title and show the legend
# plt.title('双轴折线图', fontproperties=font)
ax1.legend(loc='upper left',bbox_to_anchor=(0.5, -0.30), fancybox=True, shadow=True, ncol=3)
ax2.legend(loc='upper right',bbox_to_anchor=(0.5, -0.30), fancybox=True, shadow=True, ncol=3)
# 显示图例,放置在图表外的底部中央# Finally, save the figure to a file
plt.savefig(r'C:\Users\12810\【人口与绿化】.png', bbox_inches='tight',dpi=300)
plt.show()

在这里插入图片描述

这篇关于python画图代码-常用备查【散点图+拟合曲线+双轴折线图】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/867422

相关文章

Conda与Python venv虚拟环境的区别与使用方法详解

《Conda与Pythonvenv虚拟环境的区别与使用方法详解》随着Python社区的成长,虚拟环境的概念和技术也在不断发展,:本文主要介绍Conda与Pythonvenv虚拟环境的区别与使用... 目录前言一、Conda 与 python venv 的核心区别1. Conda 的特点2. Python v

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

Python使用python-can实现合并BLF文件

《Python使用python-can实现合并BLF文件》python-can库是Python生态中专注于CAN总线通信与数据处理的强大工具,本文将使用python-can为BLF文件合并提供高效灵活... 目录一、python-can 库:CAN 数据处理的利器二、BLF 文件合并核心代码解析1. 基础合

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

golang中reflect包的常用方法

《golang中reflect包的常用方法》Go反射reflect包提供类型和值方法,用于获取类型信息、访问字段、调用方法等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录reflect包方法总结类型 (Type) 方法值 (Value) 方法reflect包方法总结

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos