0

My code:

<html>
<style type="text/css">
    h1 {
         position: absolute;
         top:   5px;
         left:  200px;      
       }    

    form #Edit1 { 
                   position: absolute; 
                   top:    37px; 
                   left:   410px; 
                }

    form #Edit2 { 
                   position: absolute; 
                   top:    37px; 
                   left:   840px; 
                }

    </style>
    <font size="4" face="arial" color="#0000FF">
    <h1>XML Search</h1>
    </font>
    <br/>
    <br/>
    <Form Action ="/search/" Method ="POST">
    <div id="Edit1">
        <INPUT TYPE = 'VARCHAR'  name ='word' VALUE ="" size = "50">
    </div>
    <div id="Edit2">
        <INPUT TYPE = "Submit" VALUE = "Search">
    </div>
    <br/>
    <hr/>
    {% csrf_token %}
    </Form>

    {% if list1 %}
          <br/>     
          <head>
            #!/usr/bin/python
            # make a horizontal bar chart
            from pylab import *
            val = 3+10*rand(5)    # the bar lengths
            pos = arange(5)+.5    # the bar centers on the x axis

            figure(1)
            barh(pos,val, align='center')
            {% for l in list1 %}
                   xticks(pos, ({{l.file_name}},))
            {% endfor %}
            xlabel('Performance')
            title('How fast do you want to go today?')
            grid(True)
            show()
          </head>
          <body>
            <div id="chart_div" style="width: 1000px; height: 500px;"></div>
          </body>

    {% endif %}
</html>

I have created an app in Django called 'search' which searches the keywords entered by the user in 10xml documents and maintain the frequency of their occurrence for each file. When user enters the words he gets the results as graphs. This above mentioned HTML code file is redirected from views.py file. On running the app on the server, the Python code employed alongwith the HTML code, gets printed as it is when user enters the keywords. How can I display the charts created in pylab in HTML page?

I have another idea, I used up Google charts earlier and they are working fine. The only problem with them is that they will not work if there is no Internet, and this will be a drawback in may app. Is there any way out to solve this, I mean how can we use Google charts statically? If anyone of you want you want me to upload my Google charts code, I can do that.

Zoe
  • 27,060
  • 21
  • 118
  • 148
POOJA GUPTA
  • 2,295
  • 7
  • 32
  • 60

1 Answers1

1

You need to use the FigureCanvasAgg backend and return a HttpResponse. See for instance:

[Django with Matplotlib][1]

How to use Matplotlib in Django?

Community
  • 1
  • 1
reptilicus
  • 10,290
  • 6
  • 55
  • 79
  • the link that you have given is not understood by me what does that mean?I know that it's the code written for charts in matplotlib/pylab but how is it related to the FigureCanvasAgg Backend – POOJA GUPTA Jul 10 '12 at 04:19
  • Sorry, had the wrong link in there somehow. Updated the link. . . – reptilicus Jul 10 '12 at 15:18