Как создать тройной контурный сюжет в Python?

У меня есть набор данных следующим образом (в Python):

import numpy as np A = np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0, 0.1, 0.2, 0.3, 0.4, 0.2, 0.2, 0.05, 0.1]) B = np.array([0.9, 0.7, 0.5, 0.3, 0.1, 0.2, 0.1, 0.15, 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]) C = np.array([0, 0.1, 0.2, 0.3, 0.4, 0.2, 0.2, 0.05, 0.1, 0.9, 0.7, 0.5, 0.3, 0.1, 0.2, 0.1, 0.15, 0]) D = np.array([1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2]) 

Я пытаюсь создать тройные графики с matplotlib, как показано на рисунке ( источник ). Оси – это значения A, B, C и D, которые должны обозначаться контурами, а точки должны быть помечены как на рисунке.

введите описание изображения здесь

Могут ли такие графики быть созданы в matplotlib или Python?

  • matplotlib установить размер ярлыка yaxis
  • Python Tkinter: попытка получить размер виджета
  • Как подсчитать появление определенного элемента в ndarray в Python?
  • Как подключиться к улью с помощью python pyhs2?
  • Как сравнить даты с данными Twitter, хранящимися в MongoDB через PyMongo?
  • Matplotlib, добавив текст с несколькими строками. Добавление текста, который может следовать кривой
  • программа игнорирует оператор if и печатает True, когда False
  • Лучшая практика лесозаготовки в Django Celery
  • 2 Solutions collect form web for “Как создать тройной контурный сюжет в Python?”

    Вы можете попробовать что-то вроде этого:

     import numpy as np import matplotlib.pyplot as plt import matplotlib.tri as tri # first load some data: format x1,x2,x3,value test_data = np.array([[0,0,1,0], [0,1,0,0], [1,0,0,0], [0.25,0.25,0.5,1], [0.25,0.5,0.25,1], [0.5,0.25,0.25,1]]) # barycentric coords: (a,b,c) a=test_data[:,0] b=test_data[:,1] c=test_data[:,2] # values is stored in the last column v = test_data[:,-1] # translate the data to cartesian corrds x = 0.5 * ( 2.*b+c ) / ( a+b+c ) y = 0.5*np.sqrt(3) * c / (a+b+c) # create a triangulation out of these points T = tri.Triangulation(x,y) # plot the contour plt.tricontourf(x,y,T.triangles,v) # create the grid corners = np.array([[0, 0], [1, 0], [0.5, np.sqrt(3)*0.5]]) triangle = tri.Triangulation(corners[:, 0], corners[:, 1]) # creating the grid refiner = tri.UniformTriRefiner(triangle) trimesh = refiner.refine_triangulation(subdiv=4) #plotting the mesh plt.triplot(trimesh,'k--') plt.show() 

    Простой треугольный график

    Обратите внимание, что вы можете удалить оси x, y, выполнив:

     plt.axis('off') 

    Однако для треугольной оси + меток и тиков я пока не знаю, но если у кого-то будет решение, я возьму его;)

    Лучший,

    Julien

    Да, они могут; есть по крайней мере несколько пакетов, которые помогут.

    Однажды я попытался собрать их всех в блоге, тройных диаграммах . Обязательно просмотрите различные ссылки и комментарии.

    Кажется, это лучшие варианты для Python:

    • python-ternary Марка Харпера
    • Veusz , библиотека построителя Python

    Есть также некоторые предложения в другом вопросе SO: Библиотека / инструмент для рисования тройных / треугольных графиков [закрыт] .

    Interesting Posts

    Внедрить интерактивную оболочку поверх ssh в Python с помощью Paramiko?

    Как удалить элементы из словаря во время итерации по нему?

    Почему эта массив numpy слишком большой для загрузки?

    Почему я не могу вставлять выходные данные Pythons REPL без ручного редактирования?

    Как использовать список Python для назначения std :: vector в C ++ с помощью SWIG?

    Regex, чтобы найти URL-адреса в строке в Python

    Легкий способ переключения между рендерингами в рамках одного и того же метода просмотра

    Архив записей в формате Django Year / Month

    Найти наименьшее значение, которое не является нулевым, используя python

    Добавление базового класса в существующий объект в python

    Пути файлов Python 3: os.walk () UnicodeEncodeError: кодек «utf-8» не может кодироваться: суррогаты не разрешены

    Как отправить электронное письмо нескольким получателям, используя python smtplib?

    Может ли пользовательский валидатор настраивать поле необязательно?

    Python: библиотека OAuth

    Использование PIL для рисования изображения в App Engine

    Python - лучший язык программирования в мире.