在同一张图上用彩色图绘制多列数据框
Plotting multiple columns of data frame with color map on the same graph
我想用彩色地图绘制第 0 列与所有其他列的对比图。
我在后面写了 For 循环。但是,所有图表都是单独出现的,而不是在同一张图表上。下面是我写的代码,
csv_file1 = pd.read_csv(r'file path')
j = [i for i in range(1,175)]
for i in j:
csv_file1.plot.scatter(0,i,c=i,colormap='viridis')
plt.hold()
如何获取同一张图的所有图?
不能代表 pandas.plot,但您可以通过使用 plt.scatter
并将 plt.show()
置于循环外
来控制何时清除画布
import pandas as pd
import matplotlib.pyplot as plt
csv_file1 = pd.read_csv(r'file path')
j = csv_file.columns.tolist()
for i in j:
plt.scatter(csv_file1.index,csv_file1[i],colormap='viridis')
plt.show()
使用 pandas,您需要使用相同的 ax
绘制所有地块。假设您想将第一列用作 x
,将所有其他列用作 y
,所有内容都通过 y
值着色。您需要抑制颜色栏,因为 pandas 想要为每一列添加一个单独的颜色栏。
from matplotlib import pyplot as plt
import pandas as pd
csv_file1 = pd.read_csv(r'file path')
ax = plt.gca()
columns = csv_file1.columns
for col in columns[1:]:
csv_file1.plot.scatter(x=columns[0], y=col, c=col, colormap='viridis',
ax=ax, colorbar=False)
plt.show()
或者,如果您想为每一列赋予自己的颜色,您可以计算一个颜色列表(pandas 似乎喜欢它们在一种颜色的列表中):
colors = [[plt.cm.viridis(i / len(columns))] for i in range(len(columns) - 1)]
for col, color in zip(columns[1:], colors):
csv_file1.plot.scatter(x=columns[0], y=col, c=color, ax=ax, colorbar=False)
plt.show()
我想用彩色地图绘制第 0 列与所有其他列的对比图。 我在后面写了 For 循环。但是,所有图表都是单独出现的,而不是在同一张图表上。下面是我写的代码,
csv_file1 = pd.read_csv(r'file path')
j = [i for i in range(1,175)]
for i in j:
csv_file1.plot.scatter(0,i,c=i,colormap='viridis')
plt.hold()
如何获取同一张图的所有图?
不能代表 pandas.plot,但您可以通过使用 plt.scatter
并将 plt.show()
置于循环外
import pandas as pd
import matplotlib.pyplot as plt
csv_file1 = pd.read_csv(r'file path')
j = csv_file.columns.tolist()
for i in j:
plt.scatter(csv_file1.index,csv_file1[i],colormap='viridis')
plt.show()
使用 pandas,您需要使用相同的 ax
绘制所有地块。假设您想将第一列用作 x
,将所有其他列用作 y
,所有内容都通过 y
值着色。您需要抑制颜色栏,因为 pandas 想要为每一列添加一个单独的颜色栏。
from matplotlib import pyplot as plt
import pandas as pd
csv_file1 = pd.read_csv(r'file path')
ax = plt.gca()
columns = csv_file1.columns
for col in columns[1:]:
csv_file1.plot.scatter(x=columns[0], y=col, c=col, colormap='viridis',
ax=ax, colorbar=False)
plt.show()
或者,如果您想为每一列赋予自己的颜色,您可以计算一个颜色列表(pandas 似乎喜欢它们在一种颜色的列表中):
colors = [[plt.cm.viridis(i / len(columns))] for i in range(len(columns) - 1)]
for col, color in zip(columns[1:], colors):
csv_file1.plot.scatter(x=columns[0], y=col, c=color, ax=ax, colorbar=False)
plt.show()