亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python/matplotlib:如何更改圖中每個第 n 個數據點的顏色和/或符號?

Python/matplotlib:如何更改圖中每個第 n 個數據點的顏色和/或符號?

慕沐林林 2022-11-29 15:59:23
我使用 Python 的經驗非?;A。我已經編寫了 Python 代碼來從外部文件導入數據并執行計算。我的結果看起來像這樣(除了實際上要大得多)。1   1       1   1957    1   0.15        2   346 2   0.902   1003   19203   1003   40我想要做的是將這兩列繪制為一個系列,然后根據特定模式區分每個數據點。我知道這聽起來不必要地復雜,但這是我需要做的事情來幫助那些將使用我的代碼的人。不幸的是,我的 Python 技能在這里讓我失望了。進一步來說:1.第一列有“1”、“2”或“3”。所以首先我想把所有的“1”數據點都畫成圓圈(例如),所有的“2”數據點都畫成其他符號,“3”數據點也是如此。2.接下來。每個不同的數字有三行。所以對于“1”,第二列的“0.15”是平均值,“1957”是最大值,“1”是最小值。我想讓與每個數字的平均值(每個數字的第一行)相關聯的數據點變為綠色(例如)。我希望最大值和最小值也有自己的顏色。所以我最終會得到一個只顯示一個系列的圖,但每個數據點看起來都不同。如果有人能指出正確的方向,我將不勝感激。如果我沒有說清楚,請告訴我,我會再試一次!
查看完整描述

2 回答

?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

對于不同的標記樣式,您當前需要創建不同的繪圖實例(請參閱此 github 問題)??梢酝ㄟ^將數組作為color參數傳遞來使用不同的顏色。例如:


import matplotlib.pyplot as plt

import numpy as np


data = np.array([

    [1, 0.15],

    [1, 1957],

    [1, 1],

    [2, 346],

    [2, 0.90],

    [2, 100],

    [3, 1920],

    [3, 100],

    [3, 40],

])

x, y = np.transpose(data)


symbols = ['o', 's', 'D']

colors = ['blue', 'orange', 'green']


for value, marker in zip(np.unique(x), symbols):

    mask = (x == value)

    plt.scatter(x[mask], y[mask], marker=marker, color=colors)

plt.show()


查看完整回答
反對 回復 2022-11-29
?
米脂

TA貢獻1836條經驗 獲得超3個贊

我要做的是將數據分成三個不同的列,這樣你就有了幾個系列。然后我會使用帶有不同標記的 plt.scatter 來獲得所需的效果。


import matplotlib.pyplot as plt

import numpy as np


# Fixing random state for reproducibility

np.random.seed(19680801)



N = 100

r0 = 0.6

x = 0.9 * np.random.rand(N)

y = 0.9 * np.random.rand(N)

area = (20 * np.random.rand(N))**2  # 0 to 10 point radii

c = np.sqrt(area)

r = np.sqrt(x ** 2 + y ** 2)

area1 = np.ma.masked_where(r < r0, area)

area2 = np.ma.masked_where(r >= r0, area)

plt.scatter(x, y, s=area1, marker='^', c=c)

plt.scatter(x, y, s=area2, marker='o', c=c)

# Show the boundary between the regions:

theta = np.arange(0, np.pi / 2, 0.01)

plt.plot(r0 * np.cos(theta), r0 * np.sin(theta))


plt.show()


來源:https ://matplotlib.org/3.1.1/gallery/lines_bars_and_markers/scatter_masked.html#sphx-glr-gallery-lines-bars-and-markers-scatter-masked-py


查看完整回答
反對 回復 2022-11-29
  • 2 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號