如何修改 2d 散点图以显示基于 csv 文件中第三个数组的颜色?

Posted

技术标签:

【中文标题】如何修改 2d 散点图以显示基于 csv 文件中第三个数组的颜色?【英文标题】:How to modify 2d Scatterplot to display color based off third array in csv file? 【发布时间】:2012-06-01 10:48:16 【问题描述】:

我正在使用 Python 和 CSV 文件。我目前正在尝试修改下面的散点图(2d)以根据我的 csv 文件中的第三列更改颜色。在搜索了多个帖子之后,我基本上想使用通用颜色图(彩虹)并将我的第三个数组乘以颜色图,以便为每个 xy 点显示不同的颜色。我想我可以从 ax.scatter 函数做所有事情,但我不确定如何将每个不同的 x,y 坐标乘以颜色图和第三个数组编号。它应该看起来类似于等高线图,但我更喜欢不同颜色的散点图。

这是我正在使用的代码:

import matplotlib   
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas    
from matplotlib.figure import Figure
import matplotlib.mlab as mlab
import numpy as np

r = mlab.csv2rec('test.csv')
fig = Figure(figsize=(6,6))
canvas = FigureCanvas(fig)

ax = fig.add_subplot(111)
ax.set_title("X vs Y AVG",fontsize=14)
ax.set_xlabel("XAVG",fontsize=12)
ax.set_ylabel("YAVG",fontsize=12)
ax.grid(True,linestyle='-',color='0.75')

x = r.xavg #first column
y = r.yavg #second column
z = r.wtr #third column

ax.scatter(x,y,s=.2,c='b', marker = ',', cmap = ?);

【问题讨论】:

【参考方案1】:

查看散点线

import matplotlib.pyplot as plt
from matplotlib  import cm
import numpy as np

fig = plt.figure(figsize=(6,6))
ax = fig.add_subplot(111)
ax.set_title("X vs Y AVG",fontsize=14)
ax.set_xlabel("XAVG",fontsize=12)
ax.set_ylabel("YAVG",fontsize=12)
ax.grid(True,linestyle='-',color='0.75')
x = np.random.random(30)
y = np.random.random(30)
z = np.random.random(30)

# scatter with colormap mapping to z value
ax.scatter(x,y,s=20,c=z, marker = 'o', cmap = cm.jet );

plt.show()

它会产生

【讨论】:

非常感谢,这回答了我的问题。我现在假设为了更改颜色图,我可以遵循其他文档。我还想将画布项保留在代码中,以便我可以使用以下代码保存图像:'canvas.print_figure('test.png', dpi=250)' @Jonny 你不一定需要画布对象来保存你的图,你可以使用savefig。 对,对。感谢反馈

以上是关于如何修改 2d 散点图以显示基于 csv 文件中第三个数组的颜色?的主要内容,如果未能解决你的问题,请参考以下文章

echarts图表——漏斗图&散点图

为啥 k-means 聚类散点图显示不同的结果?

如何修改散点图图例以显示相同类型句柄的不同格式?

plotly基于dataframe数据绘制散点图(scatter plot)

蟒蛇 |散点图不显示

散点图 x 轴刻度标签未显示