Skip to content
    geeksforgeeks
    • Interview Prep
      • DSA
      • Interview Corner
      • Aptitude & Reasoning
      • Practice Coding Problems
      • All Courses
    • Tutorials
      • Python
      • Java
      • ML & Data Science
      • Programming Languages
      • Web Development
      • CS Subjects
      • DevOps
      • Software and Tools
      • School Learning
    • Tracks
      • Languages
        • Python
        • C
        • C++
        • Java
        • Advanced Java
        • SQL
        • JavaScript
        • C#
      • Interview Preparation
        • GfG 160
        • GfG 360
        • System Design
        • Core Subjects
        • Interview Questions
        • Interview Puzzles
        • Aptitude and Reasoning
        • Product Management
        • Computer Organisation and Architecture
      • Data Science
        • Python
        • Data Analytics
        • Complete Data Science
        • Gen AI
        • Agentic AI
      • Dev Skills
        • Full-Stack Web Dev
        • DevOps
        • Software Testing
        • CyberSecurity
        • NextJS
        • Git
      • Tools
        • Computer Fundamentals
        • AI Tools
        • MS Excel & Google Sheets
        • MS Word & Google Docs
      • Maths
        • Maths For Computer Science
        • Engineering Mathematics
        • School Maths
    • Python Tutorial
    • Data Types
    • Interview Questions
    • Examples
    • Quizzes
    • DSA Python
    • Data Science
    • NumPy
    • Pandas
    • Practice
    • Django
    • Flask
    • Projects
    Open In App

    Matplotlib Markers

    Last Updated : 12 Jul, 2025
    Comments
    Improve
    Suggest changes
    Like Article
    Like
    Report

    The markers module in Matplotlib helps highlight individual data points on plots, improving readability and aesthetics. With various marker styles, users can customize plots to distinguish data series and emphasize key points, enhancing the effectiveness of visualizations.

    To illustrate this concept, consider the following simple example where we plot a line graph with circular markers:

    Python
    import matplotlib.pyplot as plt
    
    x = [1, 2, 3, 4, 5]
    y = [2, 4, 6, 8, 10]
    
    plt.plot(x, y, marker='o', linestyle='-', label='Data Points')
    plt.title('Simple Plot with Markers')
    plt.xlabel('X-axis')
    plt.ylabel('Y-axis')
    plt.legend()
    plt.show()
    

    Output:

    Screenshot-2024-12-10-112721
    Simple Line plot with Markets

    In this example, each point on the line is marked with a circle ('o'), making it easy to identify individual data points.

    Matplotlib Markers Module in Python

    The Matplotlib.markers module provides functions to handle markers in Matplotlib. Each marker has a specific character or symbol associated with it that represents how the data point will appear on the graph. This flexibility allows users to customize their plots according to their preferences or requirements

    Below is the table defining most commonly used markers in Matplotlib:

    Marker

    Symbol

    Description
    "."
    See More

    •

    point
    "o"

    ⬤

    circle
    "v"

    ▼

    triangle_down
    "^"

    ▲

    triangle_up
    "s"

    ■

    square
    "p"

    ⬟

    pentagon
    "*"

    ★

    star
    "8"

    ⬢

    octagon

    Let's mark each point by star symbol:

    Python
    import matplotlib.pyplot as plt
    
    x = [1, 2, 3, 4, 5]
    y = [2, 4, 6, 8, 10]
    
    plt.plot(x, y, marker='*', linestyle='--', color='r', label='Data Points')
    plt.title('Modified Plot with Markers')
    plt.xlabel('X-axis')
    plt.ylabel('Y-axis')
    plt.legend()
    plt.grid(True)
    plt.show()
    

    Output:

    Screenshot-2024-12-10-120113
    Simple plot with * marker

    Visualizing Multiple Marker Shapes

    This code generates a plot showcasing different Matplotlib markers. It iterates through a list of marker styles and displays them on the same x-axis, with each marker positioned along a horizontal line at different y-values.

    Python
    import matplotlib.pyplot as plt
    
    x = range(1, 11)
    markers = ['o', 's', '^', 'v', 'D', '*', '+', 'x']
    
    for i, marker in enumerate(markers):
        plt.plot(x, [i*2]*10, marker=marker, linestyle='')
    
    plt.title('Different Matplotlib Markers')
    plt.xlabel('X-axis')
    plt.ylabel('Y-axis')
    plt.show()
    

    Output:

    Screenshot-2024-12-10-120842
    Visualising Multiple markers

    Using fmt Parameter in Matplotlib

    The syntax for using the fmt parameter in Matplotlib is actually a combination of marker, line style, and color, where the format string follows this structure:

    Syntax: fmt = 'marker|line|color'

    • Marker: Specifies the style of the points, e.g., 'o' for circles, 's' for squares, etc.
    • Line: Specifies the style of the line, e.g., '-' for a solid line, ':' for a dotted line, etc.
    • Color: Specifies the color of the plot elements, e.g., 'r' for red, 'b' for blue, etc.

    Let's have a look at the example:

    Python
    import matplotlib.pyplot as plt
    
    x = [4,1,7,5,8]
    plt.plot(x,'o-r')  # Red circles with a solid line
    
    plt.title('Plot with fmt')
    plt.xlabel('X-axis')
    
    plt.show()
    

    Output:

    Screenshot-2024-12-10-121711
    using fmt parameter

    Line and color reference

    The line and color reference in Matplotlib allows you to customise the appearance of plot lines and markers. You can quickly set the line style and color to enhance visual clarity and aesthetics.

    Line Style Reference

    Line Style

    Symbol

    Solid line

    '-'

    Dashed line

    '┈'

    Dash-dot line

    '-.'

    Dotted line

    ':'

    Long dashed line

    '--'

    Custom dash

    'dotted'

    Visualizing line style reference

    Python
    import matplotlib.pyplot as plt
    
    x = [1, 3, 2, 9, 8]
    plt.plot(x,'--')  
    
    plt.title('Line Style')
    plt.xlabel('X-axis')
    plt.show()
    

    Output:

    Screenshot-2024-12-10-122748
    Line style reference

    Color Reference

    Color

    Symbol

    Red

    'r'

    Green

    'g'

    Blue

    'b'

    Cyan

    'c'

    Magenta

    'm'

    Black

    'k'

    Yellow

    'y'

    Orange

    'orange'

    Purple

    'purple'

    White

    'w'

    Visualizing color style reference

    Python
    import matplotlib.pyplot as plt
    
    x = [1, 2, 3, 4, 5]
    y = [2, 4, 6, 8, 10]
    
    plt.plot(x, y, 'ro')  
    
    plt.title('Color Example')
    plt.xlabel('X-axis')
    plt.ylabel('Y-axis')
    plt.show()
    

    Output:

    Screenshot-2024-12-10-124123
    Color Style

    Marker Size

    You can use the keyword argument markersize or the shorter version, ms to set the size of the markers:

    Visualizing markers with increased size

    Python
    import matplotlib.pyplot as plt
    import numpy as np
    
    ypoints = np.array([4, 9, 1, 10])
    
    plt.plot(ypoints,color="hotpink", marker = '*', ms = 20)
    plt.show()
    

    Output:

    Screenshot-2024-12-10-124511
    Marker size increased
    Create Quiz

    R

    rajukumar19
    Improve

    R

    rajukumar19
    Improve
    Article Tags :
    • Python
    • Write From Home
    • AI-ML-DS
    • Python-Library
    • Python-matplotlib
    • Matplotlib markers-class

    Explore

      Python Fundamentals

      Python Introduction

      2 min read

      Input and Output in Python

      4 min read

      Python Variables

      4 min read

      Python Operators

      4 min read

      Python Keywords

      2 min read

      Python Data Types

      8 min read

      Conditional Statements in Python

      3 min read

      Loops in Python - For, While and Nested Loops

      5 min read

      Python Functions

      5 min read

      Recursion in Python

      4 min read

      Python Lambda Functions

      5 min read

      Python Data Structures

      Python String

      5 min read

      Python Lists

      4 min read

      Python Tuples

      4 min read

      Python Dictionary

      3 min read

      Python Sets

      6 min read

      Python Arrays

      7 min read

      List Comprehension in Python

      4 min read

      Advanced Python

      Python OOP Concepts

      11 min read

      Python Exception Handling

      5 min read

      File Handling in Python

      4 min read

      Python Database Tutorial

      4 min read

      Python MongoDB Tutorial

      3 min read

      Python MySQL

      9 min read

      Python Packages

      10 min read

      Python Modules

      3 min read

      Python DSA Libraries

      15 min read

      List of Python GUI Library and Packages

      3 min read

      Data Science with Python

      NumPy Tutorial - Python Library

      3 min read

      Pandas Tutorial

      4 min read

      Matplotlib Tutorial

      5 min read

      Python Seaborn Tutorial

      3 min read

      StatsModel Library - Tutorial

      3 min read

      Learning Model Building in Scikit-learn

      6 min read

      TensorFlow Tutorial

      2 min read

      PyTorch Tutorial

      6 min read

      Web Development with Python

      Flask Tutorial

      8 min read

      Django Tutorial | Learn Django Framework

      7 min read

      Django ORM - Inserting, Updating & Deleting Data

      4 min read

      Templating With Jinja2 in Flask

      6 min read

      Django Templates

      5 min read

      Build a REST API using Flask - Python

      3 min read

      Building a Simple API with Django REST Framework

      3 min read

      Python Practice

      Python Quiz

      1 min read

      Python Coding Practice

      1 min read

      Python Interview Questions and Answers

      15+ min read
    top_of_element && top_of_screen < bottom_of_element) || (bottom_of_screen > articleRecommendedTop && top_of_screen < articleRecommendedBottom) || (top_of_screen > articleRecommendedBottom)) { if (!isfollowingApiCall) { isfollowingApiCall = true; setTimeout(function(){ if (loginData && loginData.isLoggedIn) { if (loginData.userName !== $('#followAuthor').val()) { is_following(); } else { $('.profileCard-profile-picture').css('background-color', '#E7E7E7'); } } else { $('.follow-btn').removeClass('hideIt'); } }, 3000); } } }); } $(".accordion-header").click(function() { var arrowIcon = $(this).find('.bottom-arrow-icon'); arrowIcon.toggleClass('rotate180'); }); }); window.isReportArticle = false; function report_article(){ if (!loginData || !loginData.isLoggedIn) { const loginModalButton = $('.login-modal-btn') if (loginModalButton.length) { loginModalButton.click(); } return; } if(!window.isReportArticle){ //to add loader $('.report-loader').addClass('spinner'); jQuery('#report_modal_content').load(gfgSiteUrl+'wp-content/themes/iconic-one/report-modal.php', { PRACTICE_API_URL: practiceAPIURL, PRACTICE_URL:practiceURL },function(responseTxt, statusTxt, xhr){ if(statusTxt == "error"){ alert("Error: " + xhr.status + ": " + xhr.statusText); } }); }else{ window.scrollTo({ top: 0, behavior: 'smooth' }); $("#report_modal_content").show(); } } function closeShareModal() { const shareOption = document.querySelector('[data-gfg-action="share-article"]'); shareOption.classList.remove("hover_share_menu"); let shareModal = document.querySelector(".hover__share-modal-container"); shareModal && shareModal.remove(); } function openShareModal() { closeShareModal(); // Remove existing modal if any let shareModal = document.querySelector(".three_dot_dropdown_share"); shareModal.appendChild(Object.assign(document.createElement("div"), { className: "hover__share-modal-container" })); document.querySelector(".hover__share-modal-container").append( Object.assign(document.createElement('div'), { className: "share__modal" }), ); document.querySelector(".share__modal").append(Object.assign(document.createElement('h1'), { className: "share__modal-heading" }, { textContent: "Share to" })); const socialOptions = ["LinkedIn", "WhatsApp","Twitter", "Copy Link"]; socialOptions.forEach((socialOption) => { const socialContainer = Object.assign(document.createElement('div'), { className: "social__container" }); const icon = Object.assign(document.createElement("div"), { className: `share__icon share__${socialOption.split(" ").join("")}-icon` }); const socialText = Object.assign(document.createElement("span"), { className: "share__option-text" }, { textContent: `${socialOption}` }); const shareLink = (socialOption === "Copy Link") ? Object.assign(document.createElement('div'), { role: "button", className: "link-container CopyLink" }) : Object.assign(document.createElement('a'), { className: "link-container" }); if (socialOption === "LinkedIn") { shareLink.setAttribute('href', `https://www.linkedin.com/sharing/share-offsite/?url=${window.location.href}`); shareLink.setAttribute('target', '_blank'); } if (socialOption === "WhatsApp") { shareLink.setAttribute('href', `https://api.whatsapp.com/send?text=${window.location.href}`); shareLink.setAttribute('target', "_blank"); } if (socialOption === "Twitter") { shareLink.setAttribute('href', `https://twitter.com/intent/tweet?url=${window.location.href}`); shareLink.setAttribute('target', "_blank"); } shareLink.append(icon, socialText); socialContainer.append(shareLink); document.querySelector(".share__modal").appendChild(socialContainer); //adding copy url functionality if(socialOption === "Copy Link") { shareLink.addEventListener("click", function() { var tempInput = document.createElement("input"); tempInput.value = window.location.href; document.body.appendChild(tempInput); tempInput.select(); tempInput.setSelectionRange(0, 99999); // For mobile devices document.execCommand('copy'); document.body.removeChild(tempInput); this.querySelector(".share__option-text").textContent = "Copied" }) } }); // document.querySelector(".hover__share-modal-container").addEventListener("mouseover", () => document.querySelector('[data-gfg-action="share-article"]').classList.add("hover_share_menu")); } function toggleLikeElementVisibility(selector, show) { document.querySelector(`.${selector}`).style.display = show ? "block" : "none"; } function closeKebabMenu(){ document.getElementById("myDropdown").classList.toggle("show"); }
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Campus Training Program
  • Explore
  • POTD
  • Job-A-Thon
  • Blogs
  • Nation Skill Up
  • Tutorials
  • Programming Languages
  • DSA
  • Web Technology
  • AI, ML & Data Science
  • DevOps
  • CS Core Subjects
  • Interview Preparation
  • Software and Tools
  • Courses
  • ML and Data Science
  • DSA and Placements
  • Web Development
  • Programming Languages
  • DevOps & Cloud
  • GATE
  • Trending Technologies
  • Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
  • Preparation Corner
  • Interview Corner
  • Aptitude
  • Puzzles
  • GfG 160
  • System Design
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences