Ich habe einen Datenrahmen, der 1681 gleichmäßig verteilte 2D -Gitterpunkte enthält. Jeder Datenpunkt hat seine X- und Y -Koordinaten, eine Etikett, die seine Kategorie (oder Phase) darstellt, und eine Farbe für diese Kategorie. < /P>
x y label color
0 -40.0 -30.0 Fe #660066
1 -40.0 -29.0 Fe #660066
2 -40.0 -28.0 FeS #ff7f50
3 -40.0 -27.0 FeS #ff7f50
4 -40.0 -26.0 FeS #ff7f50
... ... ... ... ...
1676 0.0 6.0 Fe2(SO4)3 #8a2be2
1677 0.0 7.0 Fe2(SO4)3 #8a2be2
1678 0.0 8.0 Fe2(SO4)3 #8a2be2
1679 0.0 9.0 Fe2(SO4)3 #8a2be2
1680 0.0 10.0 Fe2(SO4)3 #8a2be2
[1681 rows x 4 columns]
< /code>
Ich möchte ein Polygondiagramm erstellen, das die lineare Grenze jeder Kategorie zeigt (in meinem Fall auch als "Phasendiagramm" bezeichnet). SOR FAR kann ich diese Art von Diagramm in einem einfachen Streudiagramm wie folgt nur zeigen: < /p>
import matplotlib.pyplot as plt
import pandas as pd
plt.figure(figsize=(8., 8.))
for color in df.color.unique():
df_color = df[df.color==color]
plt.scatter(
x=df_color.x,
y=df_color.y,
c=color,
s=100,
label=df_color.label.iloc[0]
)
plt.xlim([-40., 0.])
plt.ylim([-30., 10.])
plt.xlabel('Log pO2(g)')
plt.ylabel('Log pSO2(g)')
plt.legend(bbox_to_anchor=(1.05, 1.))
plt.show()
, was ich jedoch will, ist jedoch Ein Phasendiagramm mit klaren linearen Grenzen, die so aussieht:
Gibt es eine Möglichkeit, ein solches Phasendiagramm mit Matplotlib < /code> zu generieren? Beachten Sie, dass die Grenze nicht deterministisch ist, insbesondere wenn die Netzpunkte nicht dicht genug sind. Daher muss es eine Art Heuristik geben, zum Beispiel sollte die Grenzlinie immer in der Mitte von zwei benachbarten Punkten mit verschiedenen Kategorien liegen. Ich kann mir vorstellen, dass es eine Art Zeilenanpassung oder Interpolation benötigt, und Matplotlib.patches.polygon ist hier wahrscheinlich nützlich. Generieren der Daten, aber Die unten gezeigten Polygoninformationen sollen nicht zum Erzeugen des Phasendiagramms
verwendet werden
Ich habe einen Datenrahmen, der 1681 gleichmäßig verteilte 2D -Gitterpunkte enthält. Jeder Datenpunkt hat seine X- und Y -Koordinaten, eine Etikett, die seine Kategorie (oder Phase) darstellt, und eine Farbe für diese Kategorie. < /P> [code] x y label color 0 -40.0 -30.0 Fe #660066 1 -40.0 -29.0 Fe #660066 2 -40.0 -28.0 FeS #ff7f50 3 -40.0 -27.0 FeS #ff7f50 4 -40.0 -26.0 FeS #ff7f50 ... ... ... ... ... 1676 0.0 6.0 Fe2(SO4)3 #8a2be2 1677 0.0 7.0 Fe2(SO4)3 #8a2be2 1678 0.0 8.0 Fe2(SO4)3 #8a2be2 1679 0.0 9.0 Fe2(SO4)3 #8a2be2 1680 0.0 10.0 Fe2(SO4)3 #8a2be2
[1681 rows x 4 columns] < /code> Ich möchte ein Polygondiagramm erstellen, das die lineare Grenze jeder Kategorie zeigt (in meinem Fall auch als "Phasendiagramm" bezeichnet). SOR FAR kann ich diese Art von Diagramm in einem einfachen Streudiagramm wie folgt nur zeigen: < /p> import matplotlib.pyplot as plt import pandas as pd
plt.figure(figsize=(8., 8.)) for color in df.color.unique(): df_color = df[df.color==color] plt.scatter( x=df_color.x, y=df_color.y, c=color, s=100, label=df_color.label.iloc[0] ) plt.xlim([-40., 0.]) plt.ylim([-30., 10.]) plt.xlabel('Log pO2(g)') plt.ylabel('Log pSO2(g)') plt.legend(bbox_to_anchor=(1.05, 1.)) plt.show() [/code]
, was ich jedoch will, ist jedoch Ein Phasendiagramm mit klaren linearen Grenzen, die so aussieht:
Gibt es eine Möglichkeit, ein solches Phasendiagramm mit Matplotlib < /code> zu generieren? Beachten Sie, dass die Grenze nicht deterministisch ist, insbesondere wenn die Netzpunkte nicht dicht genug sind. Daher muss es eine Art Heuristik geben, zum Beispiel sollte die Grenzlinie immer in der Mitte von zwei benachbarten Punkten mit verschiedenen Kategorien liegen. Ich kann mir vorstellen, dass es eine Art Zeilenanpassung oder Interpolation benötigt, und Matplotlib.patches.polygon ist hier wahrscheinlich nützlich. Generieren der Daten, aber [b] Die unten gezeigten Polygoninformationen sollen nicht zum Erzeugen des Phasendiagramms [/b] verwendet werden[code]import numpy as np import pandas as pd from shapely.geometry import Point, Polygon
Ich habe einen Datenrahmen, der 1681 gleichmäßig verteilte 2D -Gitterpunkte enthält. Jeder Datenpunkt hat seine X- und Y -Koordinaten, eine Etikett, die seine Kategorie (oder Phase) darstellt, und...
Ich habe einen Datenrahmen, der 1681 gleichmäßig verteilte 2D -Gitterpunkte enthält. Jeder Datenpunkt hat seine X- und Y -Koordinaten, eine Etikett, die seine Kategorie (oder Phase) darstellt, und...
Ich habe einen Datenrahmen, der 1681 gleichmäßig verteilte 2D -Gitterpunkte enthält. Jeder Datenpunkt hat seine X- und Y -Koordinaten, eine Etikett, die seine Kategorie (oder Phase) darstellt, und...
Ich versuche mit JavaScript eine Post an meinen ASP.NET -Kernendpunkt zu stellen. Meine Anfrage ist wie folgt strukturiert:
fetch( {
method: 'POST',
headers: {
Authorization : `Bearer ${token}`,...