使用matplotlib进行颜色编码

jbose2ul  于 2023-03-30  发布在  其他
关注(0)|答案(2)|浏览(133)

我已经创建了2散点图使用的数据从csv文件在英国城市,但需要颜色编码的点的基础上,他们的位置。在csv文件是一个列标题为'区域',区分哪个地区,他们在。任何方式,我如何去这一点?
不知道该怎么做。

vsaztqbk

vsaztqbk1#

UK.csv如下

1.2 3.4 5
6.5 3.2 3

下面的代码

...
x,y,reg = (np.array(v,dtype=t) for v, t in zip(
              zip(*(l.split() for l in open('UK.csv'))),
              (float, float, int)))

for n in set(reg):
    plt.scatter(x[reg==n], y[reg==n], label=str(n))

plt.legend(title='Region')
plt.show()

生产

ht4b089n

ht4b089n2#

由于没有给出数据集的描述。我假设:

  1. CSV文件- 'uk_cities.csv'
  2. CSV文件包含这些城市的地理位置或坐标。
    下面是相同的代码片段。
import pandas as pd
    import matplotlib.pyplot as plt
    
    # Read CSV file into a pandas DataFrame
    df = pd.read_csv('uk_cities.csv')
    
    # Dictionary to map each region to a unique color
    region_color_map = {
        region_1: 'blue',
        region_2: 'green',
        region_3: 'red' # U can add more as per requirement
    }
    
    # Create a new column in the DataFrame with the assigned color as per the region
    df['color'] = df['city'].map(region_color_map)
    
    # Scatterplot the colored points
    plt.scatter(df['latitude'], df['longitude'], c=df['color'])
    
    # Add a legend with the color codes and region names
    plt.legend(handles=[plt.scatter([], [], c=color, label=region) for region, color in region_color_map.items()])
    
    plt.show()

上面的代码导致下面的散点图。
为便于解释;我的CSV文件只有3列-(城市,纬度,&经度)

相关问题