python提取屏幕任意位置颜色(Matplotlib画图取色器)

本文介绍如何使用Python库pyautogui获取屏幕颜色,将其转换为Matplotlib所需的(R,G,B)格式,以便在Matplotlib画图中应用。通过取色并调整RGB值,实现快速将网络上找到的配色应用到绘图中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用 Matplotlib 画图的时候经常会尝试多种不同配色,但是浏览到一个好看的配色时往往不方便应用到 Matplotlib 中,因为 Matplotlib 要求的颜色格式为:(R,G,B),其中 R,G,B 最大值为1。一般查到的配色方案都是以 RGB 最大值 255 来显示的。

使用以下代码可以选择将屏幕上任意一点,获取其满足 matplotlib 的 (R,G,B) 格式。

使用流程:

1.网页搜索科研配色,例如搜到如下配色:

2.运行下面的代码,把鼠标移到颜色块上,摁一下 Ctrl 取色 (可以取多次,直到退出取色),摁一下ESC,再摁一下 Ctrl 退出取色。

3.在控制台即可看到输出了:

4.把这些颜色复制到 Matplotlib 的画图函数中就行:

my_color = tuple(np.array([247, 241, 223])/255)
plt.plot(x, y, color=my_color)
### 使用 Python Pandas 读取 CSV 文件中的多列数据并用 Matplotlib 绘制图形 #### 导入必要的库 为了实现这一目标,首先需要导入几个重要的 Python 库: ```python import matplotlib.pyplot as plt import pandas as pd import numpy as np ``` 这些库提供了处理数据和创建可视化所需的功能[^1]。 #### 设置字体样式以便中文显示正常 如果图表中包含中文标签或文字,则应设置合适的字体以确保正确渲染: ```python plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False ``` 这一步骤对于避免中文乱码至关重要[^2]。 #### 加载 CSV 数据到 DataFrame 中 利用 `pandas` 的强大功能可以轻松加载 CSV 文件的内容至内存中作为 DataFrame 对象: ```python data = pd.read_csv("example.csv") # 假设文件名为 example.csv print(data.head()) # 打印前几行查看结构 ``` 此命令会将整个 CSV 文件转换成易于操作的数据表形式,并允许访问其中任意一列或多列的数据[^3]。 #### 提取特定列用于绘图 假设要绘制第二列 (`column_2`) 和第三列 (`column_3`) 随着第一列 (`column_1`) 变化的趋势图,可以通过以下方式获取相应数值: ```python x_values = data.iloc[:, 0].values # 获取第1列的所有值作为X轴坐标 y1_values = data.iloc[:, 1].values # 获取第2列的所有值作为Y轴第一个系列 y2_values = data.iloc[:, 2].values # 获取第3列的所有值作为Y轴第二个系列 ``` 这里使用了 `.iloc[]` 方法来指定按位置索引选取整列的数据;`.values` 则用来提取纯 NumPy 数组供后续绘图函数调用。 #### 创建多个子图展示不同关系 接下来可以根据需求分别绘制两个不同的子图,在同一个窗口内比较两者的差异: ```python fig, (ax1, ax2) = plt.subplots(2) # 子图1:柱状图表示 column_2 vs column_1 关系 ax1.bar(x=x_values, height=y1_values) ax1.set_title('Column 2 Values') ax1.set_xlabel('Index from Column 1') ax1.set_ylabel('Values of Column 2') # 子图2:折线图表示 column_3 vs column_1 关系 ax2.plot(x_values, y2_values, marker='o', linestyle='-') ax2.set_title('Column 3 Values') ax2.set_xlabel('Index from Column 1') ax2.set_ylabel('Values of Column 3') plt.tight_layout() plt.show() ``` 上述代码片段展示了如何在同一张图片里安排两张独立但关联紧密的统计图表——一张是条形图,另一张则是带有标记点连接而成的趋势线。每张图都有自己的标题以及 X 轴 Y 轴说明,使得读者更容易理解所表达的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值