Skip to content
Vega-Lite templates

T–x–y vapour–liquid equilibrium — ethanol/water at 101.3 kPa with azeotrope

Binary temperature–composition VLE diagram for ethanol and water at atmospheric pressure showing the bubble-point and dew-point curves and the minimum-boiling azeotrope at 0.894 mole fraction ethanol and 78.15 °C, the phase-behaviour figure a separations engineer needs before specifying a distillation or dehydration scheme.

Template previewVega-Lite
Rendering…

Make it your own.

{
 "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
 "title": {
  "text": "Ethanol–water T–x–y diagram at 101.3 kPa",
  "subtitle": [
   "Minimum-boiling azeotrope at x = y = 0.894 mol fraction ethanol, 78.15 °C",
   "Ordinary distillation cannot cross it — 95.6 wt% is the rectification limit"
  ],
  "anchor": "start",
  "fontSize": 15,
  "subtitleFontSize": 11
 },
 "width": 540,
 "height": 380,
 "data": {
  "values": [
   { "x": 0.0, "y": 0.0, "T": 100.0 },
   { "x": 0.019, "y": 0.17, "T": 95.5 },
   { "x": 0.0721, "y": 0.3891, "T": 89.0 },
   { "x": 0.0966, "y": 0.4375, "T": 86.7 },
   { "x": 0.1238, "y": 0.4704, "T": 85.3 },
   { "x": 0.1661, "y": 0.5089, "T": 84.1 },
   { "x": 0.2337, "y": 0.5445, "T": 82.7 },
   { "x": 0.2608, "y": 0.558, "T": 82.3 },
   { "x": 0.3273, "y": 0.5826, "T": 81.5 },
   { "x": 0.3965, "y": 0.6122, "T": 80.7 },
   { "x": 0.5079, "y": 0.6564, "T": 79.8 },
   { "x": 0.5198, "y": 0.6599, "T": 79.7 },
   { "x": 0.5732, "y": 0.6841, "T": 79.3 },
   { "x": 0.6763, "y": 0.7385, "T": 78.74 },
   { "x": 0.7472, "y": 0.7815, "T": 78.41 },
   { "x": 0.8943, "y": 0.8943, "T": 78.15 },
   { "x": 0.9622, "y": 0.9611, "T": 78.2 },
   { "x": 1.0, "y": 1.0, "T": 78.3 }
  ]
 },
 "layer": [
  {
   "mark": {
    "type": "line",
    "point": { "filled": true, "size": 45 },
    "strokeWidth": 2.5,
    "interpolate": "monotone"
   },
   "encoding": {
    "x": {
     "field": "x",
     "type": "quantitative",
     "title": "Mole fraction ethanol — liquid x, vapour y",
     "scale": { "domain": [0, 1] },
     "axis": { "values": [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] }
    },
    "y": {
     "field": "T",
     "type": "quantitative",
     "title": "Temperature (°C)",
     "scale": { "domain": [77, 101], "nice": false }
    },
    "color": {
     "datum": "Bubble point — liquid x",
     "scale": {
      "domain": ["Bubble point — liquid x", "Dew point — vapour y"],
      "range": ["#1f47f5", "#e11d48"]
     },
     "legend": {
      "title": null,
      "orient": "top-left",
      "offset": 6,
      "labelLimit": 260,
      "labelFontSize": 11
     }
    },
    "tooltip": [
     { "field": "x", "type": "quantitative", "title": "x (EtOH)" },
     { "field": "T", "type": "quantitative", "title": "T (°C)" }
    ]
   }
  },
  {
   "mark": {
    "type": "line",
    "point": { "filled": true, "size": 45 },
    "strokeWidth": 2.5,
    "interpolate": "monotone"
   },
   "encoding": {
    "x": { "field": "y", "type": "quantitative" },
    "y": { "field": "T", "type": "quantitative" },
    "color": { "datum": "Dew point — vapour y" },
    "tooltip": [
     { "field": "y", "type": "quantitative", "title": "y (EtOH)" },
     { "field": "T", "type": "quantitative", "title": "T (°C)" }
    ]
   }
  },
  {
   "data": { "values": [{ "az": 0.8943, "T": 78.15 }] },
   "mark": { "type": "rule", "strokeDash": [6, 4], "color": "#0f172a", "strokeWidth": 1.5 },
   "encoding": { "x": { "field": "az", "type": "quantitative" } }
  },
  {
   "data": { "values": [{ "az": 0.8943, "T": 78.15, "t": "azeotrope  x = y = 0.894  ·  78.15 °C" }] },
   "mark": {
    "type": "text",
    "align": "right",
    "dx": -8,
    "dy": -190,
    "fontSize": 11,
    "fontWeight": "bold",
    "color": "#0f172a"
   },
   "encoding": {
    "x": { "field": "az", "type": "quantitative" },
    "y": { "field": "T", "type": "quantitative" },
    "text": { "field": "t" }
   }
  },
  {
   "data": { "values": [{ "az": 0.8943, "T": 78.15 }] },
   "mark": { "type": "point", "filled": true, "size": 110, "color": "#0f172a" },
   "encoding": {
    "x": { "field": "az", "type": "quantitative" },
    "y": { "field": "T", "type": "quantitative" }
   }
  },
  {
   "data": { "values": [{ "x": 0.25, "T": 92, "t": "two-phase envelope" }] },
   "mark": { "type": "text", "fontSize": 11, "color": "#64748b" },
   "encoding": {
    "x": { "field": "x", "type": "quantitative" },
    "y": { "field": "T", "type": "quantitative" },
    "text": { "field": "t" }
   }
  }
 ],
 "config": {
  "view": { "stroke": "#cbd5e1" },
  "axis": { "grid": true, "gridColor": "#e2e8f0" },
  "legend": { "labelLimit": 300, "labelFontSize": 11 }
 }
}