我需要打印一个直方图,如下所示:
My Histogram
12.0 #### 2.3
12.5 ### 1.55
13.0 ######################################## 21.9
13.5 ########################### 13.33
14.0 ################################## 17.25
14.5 ########## 5.21
import java.util.Scanner;
public class Array3
{
public static void main(String[] arg)
{
Histogram h = new Histogram();
System.out.println(h.readHistogram());
} // end main
} // end Array
class Histogram
{
private String title;
private double start, stop;
private double[] data;
public Histogram(String title, double start, double stop, double[] data, int numBars)
{
this.title = title;
this.start = start;
this.stop = stop;
this.data = new double[numBars];
for(int i = 0; i < numBars; ++i)
{
if(data.length > i )
{
this.data[i] = data[i];
} // end if
} // end for
} // end constructor Histogram
public Histogram(){}
public String toString()
{
String numOfHash = "";
int a;
double max = data[0];
double step1 = (stop-start)/(data.length-1);
for(int k = 0; k < data.length; ++k)
{
if(data[k] > max)
{
max = data[k];
}
}
for(int i = 0; i < data.length; ++i)
{
a = (int) (data[i] + .5);
double startNum = start + step1*i;
System.out.println(startNum);
for(int j = 0; j < a * 40/max ; ++j)
{
numOfHash = numOfHash + "#";
} // end for loop
numOfHash = numOfHash + "\n";
} // end for loop
return numOfHash;
} // end toString
public Histogram readHistogram()
{
int num = 0;
Scanner stdin = new Scanner(System.in);
System.out.println("Enter a histogram.");
System.out.println("Title: ");
String title = stdin.nextLine();
System.out.println("Start value: ");
double start = stdin.nextDouble();
System.out.println("End Value: ");
double stop = stdin.nextDouble();
System.out.println("Data: ");
double[] data = new double[6];
for(int i = 0; i < 6; ++i)
{
data[i] = stdin.nextDouble();
num++;
}
return new Histogram(title, start, stop, data, num);
}
}//结束直方图
您的toString方法需要做一些工作。首先,你需要找到最大值。接下来,可以计算缩放因子。现在,你可以画出直方图了。
这是密码。
import java.util.Scanner;
public class Array3 {
public static void main(String[] arg) {
Histogram h = new Histogram();
System.out.println(h.readHistogram());
} // end main
} // end Array3
class Histogram {
private String title;
private double start, stop;
private double[] data;
public Histogram(String title, double start, double stop, double[] data,
int numBars) {
this.title = title;
this.start = start;
this.stop = stop;
this.data = new double[numBars];
for (int i = 0; i < numBars; ++i) {
if (data.length > i) {
this.data[i] = data[i];
} // end if
} // end for
} // end constructor Histogram
public Histogram() {
}
public String toString() {
String numOfHash = title + "\n";
double max = data[0];
for (int k = 1; k < data.length; ++k) {
max = Math.max(max, data[k]);
}
double scaleFactor = max / 40D;
double a = start;
for (int i = 0; i < data.length; ++i) {
numOfHash += String.format("%.1f", a) + " ";
int count = (int) Math.round(data[i] / scaleFactor);
for (int j = 0; j < count; ++j) {
numOfHash += "#";
} // end for loop
numOfHash += " " + String.format("%.2f", data[i]) + "\n";
a += 0.5D;
} // end for loop
return numOfHash;
} // end toString
public Histogram readHistogram() {
int num = 0;
Scanner stdin = new Scanner(System.in);
System.out.println("Enter a histogram.");
System.out.println("Title: ");
String title = stdin.nextLine();
System.out.println("Start value: ");
double start = stdin.nextDouble();
System.out.println("End Value: ");
double stop = stdin.nextDouble();
System.out.println("Data: ");
double[] data = new double[5];
for (int i = 0; i < 5; ++i) {
data[i] = stdin.nextDouble();
num++;
}
stdin.close();
return new Histogram(title, start, stop, data, num);
}
} // end Histogram
我有一个程序,可以将其进度打印到控制台。每20步,它就会打印出步数,如10、20、30等。但在此范围内,它会打印一个点。这是使用末尾带有逗号的print语句打印的(python 2.x) 不幸的是,我注意到这些点是分开打印的,就像这样: 我希望这个更紧,如下所示: 在visual basic语言中,如果在print语句的末尾添加分号而不是逗号,则可以得到此表单。在Python中是否有类似的方法,或
问题内容: 我正在使用matplotlib / pylab Python模块创建非常简单的图表。标记Y轴的字母“ y”在其侧面。如果标签较长(例如单词),则不会出现这种情况,以免将图形的外部扩展到左侧过多。但是对于一个字母的标签,这没有意义,标签应该是直立的。我的搜索空白。如何水平打印“ y”? 问题答案: 这很简单。绘制标签后,您可以简单地更改旋转角度: 或者,您可以将旋转作为参数传递,即
我使用Jaspersoft Studio 6.3.1.final来设计一个包含表格和其他元素的报告。 设计如下所示。该表只有列标题和详细信息部分。 现在垂直打印字段,如下所示: 但我需要的是像这样水平展示它们: 我在网上搜索,没有找到任何运气。 有办法做到这一点吗?我被困在这里了。非常感谢您的帮助! 编辑: 这就是我将数据传递到报表的方式(使用现有的Java服务生成JRBeanDig
问题内容: 我需要打印以下代码: 像这样水平打印而不是垂直打印: 至 我不确定该如何做,会有一些帮助。谢谢 问题答案: 两种选择: 累加一个结果字符串,最后是: 或者告诉Python不要用换行符结束打印的字符串。在您似乎正在使用的Python 3中,您可以通过设置函数的参数(默认情况下为(换行符))来实现此目的: 历史记录:在Python 2中,可以通过在语句末尾添加逗号来实现。
问题内容: 我必须在热蓝牙打印机上打印一些数据,我正在这样做: 它适用于文本,但不适用于图像。我想我需要获取byte[]图像数据。我尝试通过这种方式获取图像数据: 不幸的是,打印机打印了许多奇怪的字符(大约50厘米的纸张)。我不知道如何打印图像。 我想尝试获取位图的像素,然后将其转换为a byte[]并发送,但是我不知道该怎么做。 谢谢 更新: 经过这么长时间,我正在执行此操作:我有一个名为pri
我正在使用MPAndroidChart库。在条形图中,默认情况下,所有条形图都是垂直的(自下而上),如何水平显示?